/*!    version: 1.0.0   -   updated: 2017-09-13 11:44:02  */
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 21);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

module.exports = Vue;

/***/ }),
/* 1 */
/***/ (function(module, exports) {

module.exports = VueClassComponent;

/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var GetterTypes = {
    QuestionType: 'questionType',
    QuestionModel: 'questionModel',
    ExamData: 'examData',
    ViewStyle: 'viewStyle',
    ViewRouter: 'viewRouter',
    AnswerList: 'answerList',
    AnswerListPage: 'answerListPage',
    AnswerPreviews: 'answerPreviews',
    AnswerDetail: 'answerDetail',
    ToolbarMembers: 'toolbarMembers',
    ToastLayerOptions: 'toastLayer',
    DialogLayerOptions: 'dialogLayer',
    DetailModalOptions: 'detailModalOptions',
    ReferenceModalOptions: 'referenceOptions',
    ParsingModalOptions: 'parsingOptions',
    StatisticsModalOptions: 'statisticsOptions',
    SelectorOptions: 'selectorOptions',
    SelectorButtonOptions: 'selectorButtonOptons'
};
for (var key in GetterTypes) {
    GetterTypes[key] = "SubjectiveStats" + "/getter/" + GetterTypes[key];
}
exports.default = GetterTypes;


/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.PrivateKey = {
    DetailedList: '_isAnswerDetail',
    ModifiedData: '_modifiedData',
    RenderData: '_renderData',
    RenderType: '_renderType',
    ReactiveCache: '_reactiveCache'
};
exports.ModalOptions = {
    Masked: true,
    CloseButton: 'both'
};
var SelectStatus;
(function (SelectStatus) {
    SelectStatus[SelectStatus["Success"] = 0] = "Success";
    SelectStatus[SelectStatus["HasSelected"] = 1] = "HasSelected";
    SelectStatus[SelectStatus["OverLimit"] = 2] = "OverLimit";
})(SelectStatus = exports.SelectStatus || (exports.SelectStatus = {}));
;
exports.ViewStyles = {
    submitTime: 'time_sort',
    seatNumber: 'site_sort',
    leaderFirst: 'group_sort',
    groupId: 'group_sort'
};


/***/ }),
/* 4 */
/***/ (function(module, exports) {

module.exports = Vuex;

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/base */
Object.defineProperty(exports, "__esModule", { value: true });
var constants_1 = __webpack_require__(3);
var get_qtiplayer_1 = __webpack_require__(13);
var BaseParser = (function () {
    function BaseParser() {
    }
    BaseParser.prototype.loadQuestionModel = function (questionUrl, refPath) {
        return new Promise(function (resolve, reject) {
            if (questionUrl) {
                var qtiplayer_1 = get_qtiplayer_1.default(refPath);
                qtiplayer_1.loadOnError(function (err) { return reject(err); });
                qtiplayer_1.load(questionUrl, function () {
                    qtiplayer_1.loadOnError(function (err) { });
                    var model = qtiplayer_1.getAssessmentModel().modelMap;
                    if (model) {
                        resolve(model);
                    }
                    else {
                        resolve();
                    }
                });
            }
            else {
                resolve();
            }
        });
    };
    BaseParser.prototype.getList = function (list) {
        if (Array.isArray(list) && list.length) {
            list.forEach(function (item) {
                var data = (item.data && item.data[0]) ? {
                    type: 'image',
                    value: item.data[0].value
                } : {};
                item[constants_1.PrivateKey.RenderData] = data;
            });
        }
        return list;
    };
    BaseParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            var data = (detail.data.data && detail.data.data[0]) ? {
                type: 'image',
                value: detail.data.data[0].originValue || detail.data.data[0].value
            } : {};
            detail.data[constants_1.PrivateKey.RenderData] = data;
        }
        return detail;
    };
    BaseParser.prototype.getPreviews = function (list, current) {
        return {
            isStudentList: true,
            data: this.getList(list)
        };
    };
    BaseParser.prototype.getStatsData = function (args) { };
    BaseParser.prototype.getParsingData = function (args) { };
    BaseParser.prototype.getReferenceData = function (args) { };
    return BaseParser;
}());
exports.default = BaseParser;


/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.LanguagePackageName = 'AnswerClassStatis';
exports.GetterTypes = {
    ExamData: 'examData',
    AnswerList: 'answerList',
    IsWholeAnswerList: 'isWholeAnswerList',
    AnswerListPage: 'answerListPage',
    AnswerPreivews: 'answerPreviews',
    SelectorOptions: 'selectorOptions',
    SelectorItems: 'selectorItems',
    SelectorSubstitutedItem: 'selectorSubstitutedItem',
    ToolbarMembers: 'toolbarMembers',
    ModalCloseBeforeHandler: 'modalCloseBeforeHandler'
};
exports.ActionTypes = {
    Reset: 'Reset',
    ClickListItem: 'clickListItem',
    ClickListItemThumb: 'clickListItemThumb',
    ClickPreivewsItem: 'clickPreivewsItem',
    FlipList: 'flipList',
    FlipPreviews: 'flipPreviews',
    SelectItem: 'selectItem',
    ClickToolbar: 'clickToolbar',
    CloseModal: 'closeModal',
    SendFlower: 'sendFlower'
};
var DefaultActions = (_a = {},
    _a[exports.ActionTypes.ClickListItem] = function (context, payload) {
        return payload;
    },
    _a[exports.ActionTypes.ClickListItemThumb] = function () { },
    _a[exports.ActionTypes.FlipList] = function () { },
    _a[exports.ActionTypes.FlipPreviews] = function () { },
    _a[exports.ActionTypes.SelectItem] = function () { },
    _a[exports.ActionTypes.ClickToolbar] = function () { },
    _a[exports.ActionTypes.SendFlower] = function () { },
    _a);
function registerEmptyExternalAction($store) {
    var actions = {};
    var storeActions = $store['_actions'];
    for (var key in DefaultActions) {
        var actionName = "SubjectiveStats" + "/external/actions/" + key;
        if (!storeActions[actionName]) {
            actions[actionName] = DefaultActions[key];
        }
    }
    if (Object.keys(actions).length) {
        $store.registerModule("SubjectiveStats" + "-default-service-module", {
            actions: actions
        });
    }
}
exports.registerEmptyExternalAction = registerEmptyExternalAction;
for (var key in exports.GetterTypes) {
    exports.GetterTypes[key] = "SubjectiveStats" + "/external/getters/" + exports.GetterTypes[key];
}
for (var key in exports.ActionTypes) {
    exports.ActionTypes[key] = "SubjectiveStats" + "/external/actions/" + exports.ActionTypes[key];
}
var _a;


/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var languagePackage = __webpack_require__(24);
function translate(key) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    var text = languagePackage[arguments[0]] || 'ERROR';
    if (arguments.length > 1 && text !== 'ERROR') {
        var params_1 = [].slice.call(arguments, 1);
        text = text.replace(/\{(\d+)\}/g, function (m, $1) { return params_1[+$1]; });
    }
    return text;
}
exports.translate = translate;
function setLanguagePackage(langpack) {
    if (langpack) {
        languagePackage = langpack;
    }
}
exports.setLanguagePackage = setLanguagePackage;
exports.i18nMixin = {
    beforeCreate: function () {
        (this.$options.methods || (this.$options.methods = {}))['$i18n'] = translate;
    }
};


/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var MutationTypes = {
    ChageViewRouter: 'changeViewRouter',
    SetAnswerDetail: 'setAnswerDetail',
    SetAnswerList: 'setAnswerList',
    SetAnswerListPage: 'setAnswerListPage',
    SetAnswerPreviews: 'setAnswerPreviews',
    ShowLayer: 'showLayer',
    HideLayer: 'hideLayer',
    OpenModal: 'showModal',
    CloseModal: 'openModal',
    SetToolbarMemberActive: 'setToolbarMemberActive'
};
for (var key in MutationTypes) {
    MutationTypes[key] = "SubjectiveStats" + "/mutation/" + MutationTypes[key];
}
exports.default = MutationTypes;


/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var ActionTypes = {
    FlipList: 'flipList',
    ClickListItem: 'clickListItem',
    ClickListItemThumb: 'clickListItemThumb',
    ClickPreivewsItem: 'clickPreivewsItem',
    FlipPreviews: 'flipPreviews',
    SelectItem: 'selectItem',
    ChangeListOrder: 'changeListOrder',
    ClickToolbar: 'clickToolbar',
    SendFlower: 'sendFlower'
};
for (var key in ActionTypes) {
    ActionTypes[key] = "SubjectiveStats" + "/action/" + ActionTypes[key];
}
exports.default = ActionTypes;


/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
    template: "<!-- " + "SubjectiveStats" + " empty component -->"
};


/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.default = function (key) { return "SubjectiveStats" + ":" + key; };


/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function update(dest, source) {
    if (dest && source) {
        for (var key in source) {
            if (dest.hasOwnProperty(key)) {
                dest[key] = source[key];
            }
        }
    }
    return dest;
}
exports.update = update;
function assignProps(dest, source, props) {
    if (dest && source && Array.isArray(props)) {
        for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {
            var prop = props_1[_i];
            if (typeof source[prop] !== 'undefined') {
                dest[prop] = source[prop];
            }
        }
    }
    return dest;
}
exports.assignProps = assignProps;
function redefineObjectProps(obj, props, descriptor) {
    if (!obj)
        return obj;
    if (!Array.isArray(props)) {
        props = Object.keys(obj);
    }
    for (var _i = 0, props_2 = props; _i < props_2.length; _i++) {
        var prop = props_2[_i];
        Object.defineProperty(obj, prop, descriptor);
    }
    return obj;
}
exports.innumerable = function (obj, props) { return redefineObjectProps(obj, props, { enumerable: false }); };
exports.unwritable = function (obj, props) { return redefineObjectProps(obj, props, { writable: false }); };
exports.immutable = function (obj) { return Object.freeze(obj); };


/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var qtiplayer = null;
var currentRefPath = '';
function getQtiPlayer(refPath) {
    var _refPath = refPath || (window['icCreatePlayer'] && window['icCreatePlayer'].ref_path);
    if (_refPath && _refPath !== currentRefPath && QtiPlayer) {
        currentRefPath = _refPath;
        qtiplayer = QtiPlayer.createPlayer({
            refPath: currentRefPath
        });
    }
    return qtiplayer;
}
exports.default = getQtiPlayer;


/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var logger;
if (typeof Logger !== 'undefined' && typeof Logger.get === 'function') {
    (logger = Logger.get("SubjectiveStats")).appendHandler(function (message) { return window.console.log(message); }, { level: Logger.DEBUG });
}
else {
    logger = window.console;
}
exports.default = logger;


/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/slider */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var LIST_FLOW_STYLE = 'flow';
var Slider = (function (_super) {
    __extends(Slider, _super);
    function Slider() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.startIndex = 0;
        return _this;
    }
    Slider.prototype.created = function () {
        var _this = this;
        this.$watch('items', function (next, curr) {
            _this.startIndex = Math.max(_this.current + 1 - _this.limit, 0);
            _this.limit && _this.$el.classList[_this.items.length > _this.limit ? 'add' : 'remove'](LIST_FLOW_STYLE);
            _this.updateStatus();
        });
        this.$watch('current', function (next, curr) {
            if (next >= _this.startIndex + _this.limit) {
                _this.startIndex = next + 1 - _this.limit;
                _this.updateStatus();
            }
            else if (next < _this.startIndex) {
                _this.startIndex = next;
                _this.updateStatus();
            }
        });
    };
    Slider.prototype.mounted = function () {
        this.limit && this.$el.classList[this.items.length > this.limit ? 'add' : 'remove'](LIST_FLOW_STYLE);
        this.updateStatus();
    };
    Slider.prototype.select = function (index) {
        this.$emit('slider-item-click', { index: index });
    };
    Slider.prototype.slide = function (dire) {
        if (dire === 'next') {
            if (this.startIndex < this.items.length - this.limit) {
                this.startIndex += 1;
            }
        }
        else if (dire === 'prev') {
            if (this.startIndex > 0) {
                this.startIndex -= 1;
            }
        }
        this.updateStatus();
    };
    Slider.prototype.updateStatus = function () {
        var _this = this;
        Array.prototype.forEach.call(this.$el.querySelector('.slidebox_wrap').children[0].children, function (child, index) {
            child.style.display = index < _this.startIndex || index >= _this.startIndex + _this.limit ? 'none' : '';
        });
        this.$el.querySelector('.slide_next').classList[this.startIndex + this.limit >= this.items.length ? 'add' : 'remove']('disabled');
        this.$el.querySelector('.slide_prev').classList[this.startIndex <= 0 ? 'add' : 'remove']('disabled');
    };
    Slider = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(18),
            name: 'stats-slider',
            props: {
                items: Array,
                current: Number,
                shown: Boolean,
                limit: Number
            }
        })
    ], Slider);
    return Slider;
}(Vue));
exports.default = Slider;


/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! vue/dataViewer */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var get_qtiplayer_1 = __webpack_require__(13);
var DataViewer = (function (_super) {
    __extends(DataViewer, _super);
    function DataViewer() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.qtiplayer = null;
        _this.minderMap = null;
        return _this;
    }
    DataViewer.prototype.render = function (h) {
        var _this = this;
        if (this.data) {
            switch (this.data.type) {
                case 'image':
                    return h('div', {
                        'class': 'pic-vertical-mc'
                    }, [h('img', { domProps: { src: this.data.value } })]);
                case 'text':
                    return h('p', {
                        'class': 'view_text',
                        domProps: { innerHTML: this.data.value }
                    });
                case 'audio':
                    return h('span', {
                        'class': 'pic-vertical-mc audio_default'
                    }, [h('span', { attrs: { 'class': 'play' } })]);
                case 'video':
                    return h('span', {
                        'class': 'pic-vertical-mc video_default'
                    }, [h('span', { attrs: { 'class': 'play' } })]);
                case 'puzzle':
                    this.$nextTick(function () {
                        _this.$el.innerHTML = '';
                        if (!_this.qtiplayer) {
                            _this.qtiplayer = get_qtiplayer_1.default();
                        }
                        var option = _this.data.option;
                        var $container = _this.$el;
                        var offsetWidth = $container.offsetWidth, offsetHeight = $container.offsetHeight;
                        if (offsetWidth) {
                            option.expectWidth = offsetWidth;
                        }
                        if (offsetHeight) {
                            option.expectHeight = offsetHeight;
                        }
                        _this.qtiplayer.setAnswer(_this.data.value);
                        _this.qtiplayer.render($container, option);
                    });
                    return h('div', {
                        'class': 'js_puzzle_content pic-vertical-mc'
                    });
                case 'mindjet':
                    this.$nextTick(function () {
                        if (typeof _this.data.value === 'object' && MinderMap) {
                            if (_this.minderMap) {
                                _this.minderMap.destroy();
                            }
                            _this.minderMap = MinderMap.create(_this.data.option);
                            _this.minderMap.setData(_this.data.value);
                            _this.minderMap.render(_this.$el);
                            _this.minderMap.matchParent();
                            if (_this.data.option.privateRenderPosition) {
                                _this.minderMap.changePosition(_this.data.option.privateRenderPosition);
                            }
                        }
                    });
                    return h('div', {
                        'class': 'js_mindjet_content'
                    });
                default: break;
            }
        }
        return '';
    };
    DataViewer.prototype.destroyed = function () {
        delete this.qtiplayer;
        delete this.minderMap;
    };
    DataViewer = __decorate([
        vue_class_component_1.default({
            name: 'stats-data-viewer',
            props: {
                data: Object
            }
        })
    ], DataViewer);
    return DataViewer;
}(Vue));
exports.default = DataViewer;


/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! store/toolbar */
Object.defineProperty(exports, "__esModule", { value: true });
var mutation_types_1 = __webpack_require__(8);
var action_types_1 = __webpack_require__(9);
var external_types_1 = __webpack_require__(6);
var object_1 = __webpack_require__(12);
var logger_1 = __webpack_require__(14);
var i18n_1 = __webpack_require__(7);
var TOOLBAR_MEMBER_STYLE = 'ndui-btn-square';
exports.ToolbarMembers = {
    reference: {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_answer'],
        i18n: 'toolbar.button.refer',
        handler: function (_a) {
            var $store = _a.$store;
            $store.commit(mutation_types_1.default.OpenModal, { type: 'reference' });
        }
    },
    parsing: {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_analysis'],
        i18n: 'toolbar.button.parsing',
        handler: function (_a) {
            var $store = _a.$store;
            $store.commit(mutation_types_1.default.OpenModal, { type: 'parsing' });
        }
    },
    statistics: {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_stats'],
        i18n: 'toolbar.button.statis',
        handler: function (_a) {
            var $store = _a.$store;
            $store.commit(mutation_types_1.default.OpenModal, { type: 'statistics' });
        }
    },
    question: {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_check'],
        i18n: 'toolbar.button.question',
        handler: function (_a) {
            var $store = _a.$store;
            $store.commit(mutation_types_1.default.ChageViewRouter, { router: 'question' });
        }
    },
    'send.continue': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_continue'],
        i18n: 'toolbar.button.send.continue',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(external_types_1.ActionTypes.ClickToolbar, { type: 'send.continue' });
        }
    },
    'send.again': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_repeat'],
        i18n: 'toolbar.button.send.again',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(external_types_1.ActionTypes.ClickToolbar, { type: 'send.again' });
        }
    },
    'order.time': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_time', 'on'],
        i18n: 'toolbar.button.order.time',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(action_types_1.default.ClickToolbar, { type: 'order.time' })
                .then(function () { return $store.commit(mutation_types_1.default.SetToolbarMemberActive, { id: 'order.time' }); });
        }
    },
    'order.seat': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_seat'],
        i18n: 'toolbar.button.order.seat',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(action_types_1.default.ClickToolbar, { type: 'order.seat' })
                .then(function () { return $store.commit(mutation_types_1.default.SetToolbarMemberActive, { id: 'order.seat' }); });
        }
    },
    'order.group': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_team'],
        i18n: 'toolbar.button.order.group',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(action_types_1.default.ClickToolbar, { type: 'order.group' })
                .then(function () { return $store.commit(mutation_types_1.default.SetToolbarMemberActive, { id: 'order.group' }); });
        }
    },
    'order.leader': {
        style: [TOOLBAR_MEMBER_STYLE, 'square_leader_first'],
        i18n: 'toolbar.button.order.leader',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(action_types_1.default.ClickToolbar, {
                type: 'order.leader',
                onGetOfflineLeader: function (data) { return new Promise(function (resolve, reject) {
                    var groupNames = '';
                    if (data.groups.length > 8) {
                        groupNames = i18n_1.translate('layer.group.many');
                    }
                    else {
                        groupNames = data.groups.map(function (item) {
                            var name = item.groupName || i18n_1.translate('layer.group.default.name', item.orderId.toString());
                            return "<span class=\"pop_leader_num\">" + name + "</span>";
                        }).join(', ');
                    }
                    $store.commit(mutation_types_1.default.ShowLayer, {
                        type: 'dialog',
                        text: i18n_1.translate('layer.group.tip.offline', groupNames),
                        confirm: {
                            text: i18n_1.translate('layer.button.group.yep'),
                            handler: function () {
                                $store.commit(mutation_types_1.default.HideLayer, { type: 'dialog' });
                                resolve(data);
                            }
                        },
                        cancel: {
                            text: i18n_1.translate('layer.button.group.nope'),
                            handler: function () {
                                $store.commit(mutation_types_1.default.HideLayer, { type: 'dialog' });
                                $store.commit(mutation_types_1.default.SetToolbarMemberActive, { id: 'order.leader' });
                                resolve();
                            }
                        }
                    });
                }); }
            })
                .then(function () { return $store.commit(mutation_types_1.default.SetToolbarMemberActive, { id: 'order.leader' }); })
                .catch(function () { });
        }
    },
    exit: {
        style: [TOOLBAR_MEMBER_STYLE, 'square_tool_quit'],
        i18n: 'toolbar.button.exit',
        handler: function (_a) {
            var $store = _a.$store;
            $store.dispatch(action_types_1.default.ClickToolbar, { type: 'exit' });
        }
    },
    back: {
        style: [TOOLBAR_MEMBER_STYLE, 'js_button_back_statis'],
        i18n: 'toolbar.button.statistics',
        handler: function (_a) {
            var $store = _a.$store;
            $store.commit(mutation_types_1.default.ChageViewRouter, { router: 'stats' });
        }
    }
};
function createToolbarMember(member, order, _a) {
    var $i18n = _a.$i18n;
    if (typeof member === 'string') {
        var config = exports.ToolbarMembers[member];
        if (config) {
            return object_1.innumerable({
                id: member,
                order: order,
                hidden: config.hidden === true,
                style: config.style,
                text: $i18n(config.i18n),
                handler: config.handler
            }, ['id', 'text', 'handler', 'order']);
        }
        else {
            logger_1.default.info("no toolbar member named " + member);
        }
    }
    else {
        if (member.name) {
            var config = exports.ToolbarMembers[member.name];
            if (config) {
                return object_1.innumerable({
                    id: member.name,
                    order: member.order || order,
                    hidden: typeof member.hidden === 'boolean' ? member.hidden : config.hidden === true,
                    style: config.style,
                    text: $i18n(config.i18n),
                    handler: config.handler
                }, ['id', 'text', 'handler', 'order']);
            }
            else {
                logger_1.default.info("no toolbar member named " + member.name);
            }
        }
        return member;
    }
}
exports.createToolbarMember = createToolbarMember;


/***/ }),
/* 18 */
/***/ (function(module, exports) {

module.exports = "<div><a href=javascript:void(0); class=\"btn_slide slide_prev\" @click.stop=\"slide('prev')\"></a><i class=\"shadow shadow_l\"></i><div class=slidebox_wrap><ul ref=ul><template v-for=\"(item, index) in items\"><li :class=\"{on: current === index}\"><a href=javascript:; class=slide_a :class=\"[item.data_type, item.data_type? 'default': '']\" @click.stop=select(index)><slot :data=item></slot></a></li></template></ul></div><i class=\"shadow shadow_r\"></i> <a href=javascript:void(0); class=\"btn_slide slide_next\" @click.stop=\"slide('next')\"></a></div>"

/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/selector */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var mutation_types_1 = __webpack_require__(8);
var action_types_1 = __webpack_require__(9);
var i18n_1 = __webpack_require__(7);
var constants_1 = __webpack_require__(3);
var Selector = (function (_super) {
    __extends(Selector, _super);
    function Selector() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isExecuting = false;
        return _this;
    }
    Selector.prototype.mounted = function () {
    };
    Selector.prototype.click = function () {
        var _this = this;
        if (this.isExecuting)
            return;
        this.isExecuting = true;
        var data = { id: this.target.studentId };
        if (typeof this.dataIndex === 'number' && this.dataIndex >= 0) {
            data.dataIndex = this.dataIndex;
        }
        this.$store.dispatch(action_types_1.default.SelectItem, data).then(function (res) {
            if (res && res.status === constants_1.SelectStatus.HasSelected) {
                _this.$store.commit(mutation_types_1.default.ShowLayer, {
                    type: 'toast',
                    text: _this.$i18n('layer.contrast.added', _this.target.studentName),
                    auto: 1500
                });
            }
            _this.isExecuting = false;
        });
    };
    Selector = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(27),
            computed: vuex_1.mapGetters({
                options: getter_types_1.default.SelectorOptions,
                buttonOption: getter_types_1.default.SelectorButtonOptions
            }),
            props: {
                target: Object,
                dataIndex: Number
            },
            mixins: [i18n_1.i18nMixin]
        })
    ], Selector);
    return Selector;
}(Vue));
exports.default = Selector;


/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/mindjet */
Object.defineProperty(exports, "__esModule", { value: true });
var vue_1 = __webpack_require__(0);
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var object_1 = __webpack_require__(12);
exports.ListOption = {
    lock: true,
    maxScale: 2.5,
    minScale: 0.01,
    editAble: false,
    showMenu: false,
    animate: false,
    ignoreAttrTextVisible: false,
    contentClickViewAble: false,
    renderDataAutoLayout: false,
    pinchIntensity: 0.8
};
exports.DetailOption = {
    lock: false,
    maxScale: 2.5,
    minScale: 0.1,
    editAble: false,
    showMenu: false,
    animate: false,
    ignoreAttrTextVisible: false,
    contentClickViewAble: false,
    renderDataAutoLayout: true,
    pinchIntensity: 0.8
};
var MindJetParser = (function (_super) {
    __extends(MindJetParser, _super);
    function MindJetParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    MindJetParser.prototype.getList = function (list) {
        if (Array.isArray(list) && list.length) {
            list.forEach(function (item) {
                var result = {};
                var data = item[constants_1.PrivateKey.ModifiedData] || item.data;
                if (Array.isArray(data)) {
                    for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
                        var x = data_1[_i];
                        if (x.type === 'thumb') {
                            if (x.data_type === 'raw') {
                                result.type = 'mindjet';
                                result.value = JSON.parse(x.value || '{}');
                                result.option = exports.ListOption;
                                object_1.innumerable(result, ['option']);
                            }
                            else {
                                result.type = 'image';
                                result.value = x.value || '';
                            }
                            break;
                        }
                    }
                }
                vue_1.set(item, constants_1.PrivateKey.RenderData, result);
            });
        }
        return list;
    };
    MindJetParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            var result = {};
            if (Array.isArray(detail.data.data)) {
                for (var _i = 0, _a = detail.data.data; _i < _a.length; _i++) {
                    var x = _a[_i];
                    if (x.type === 'detail') {
                        result.type = 'mindjet';
                        result.value = JSON.parse(x.value || '{}');
                        result.option = exports.DetailOption;
                        object_1.innumerable(result, ['option']);
                        break;
                    }
                }
            }
            vue_1.set(detail.data, constants_1.PrivateKey.RenderData, result);
        }
        return detail;
    };
    return MindJetParser;
}(base_1.default));
exports.default = MindJetParser;


/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
__webpack_require__(22);
__webpack_require__(53);
__webpack_require__(54);


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function($$AllocateKey) {
/*! view/main */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var store_1 = __webpack_require__(23);
var action_types_1 = __webpack_require__(9);
var ExternalTypes = __webpack_require__(6);
var list_1 = __webpack_require__(25);
var modal_1 = __webpack_require__(30);
var toolbar_1 = __webpack_require__(44);
var header_1 = __webpack_require__(47);
var layer_1 = __webpack_require__(49);
var empty_component_1 = __webpack_require__(10);
var logger_1 = __webpack_require__(14);
var i18n_1 = __webpack_require__(7);
var set_font_size_1 = __webpack_require__(51);
var Main = (function (_super) {
    __extends(Main, _super);
    function Main() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Object.defineProperty(Main.prototype, "viewStyles", {
        get: function () {
            var styles = this.$store.getters[store_1.GetterTypes.ViewStyle];
            return styles.concat(this.styles || []);
        },
        enumerable: true,
        configurable: true
    });
    Main.prototype.beforeCreate = function () {
        {
            (this.$services || (this.$services = {})).$i18n = i18n_1.translate;
            if (this.$options['dataParser']) {
                this.$services.$dataParser = this.$options['dataParser'];
                delete this.$options['dataParser'];
            }
            else {
                logger_1.default.error('Main.createStore: dataParser is null');
            }
            if (this.$options['languagePackage']) {
                i18n_1.setLanguagePackage(this.$options['languagePackage']);
                delete this.$options['languagePackage'];
            }
            if (this.$store) {
                this.$services.$rootStore = this.$store;
                this.$store.registerModule("SubjectiveStats" + "-state-module", store_1.Store(this.$services));
            }
            else {
                this.$store = new vuex_1.Store(store_1.Store(this.$services));
            }
        }
        {
            if (this.$options.components && this.$options.propsData) {
                if (this.$options.propsData['header'] !== false) {
                    this.$options.components['stats-header'] = header_1.default;
                }
                if (this.$options.propsData['toolbar'] === true) {
                    this.$options.components['stats-toolbar'] = toolbar_1.default;
                }
            }
        }
    };
    Main.prototype.created = function () {
        var _this = this;
        this.$watch('router', function (next, curr) {
            _this.$el.style.display = next === 'stats' ? 'block' : 'none';
        });
    };
    Main.prototype.mounted = function () {
        set_font_size_1.default(this.$el);
    };
    Main.prototype.clickListItem = function (data) {
        this.$store.dispatch(action_types_1.default.ClickListItem, data);
    };
    Main.prototype.flipList = function (args) {
        this.$store.dispatch(action_types_1.default.FlipList, args);
    };
    Main.StoreTypes = ExternalTypes;
    Main = __decorate([
        vue_class_component_1.MidwareComponent({
            key: $$AllocateKey('Main'),
            public: true,
            template: __webpack_require__(52),
            components: {
                'stats-header': empty_component_1.default,
                'stats-list': list_1.default,
                'stats-modal': modal_1.default,
                'stats-toolbar': empty_component_1.default,
                'stats-layer': layer_1.default
            },
            props: {
                styles: Array,
                header: Boolean,
                flower: Boolean,
                selector: Boolean,
                toolbar: Boolean
            },
            computed: vuex_1.mapGetters({
                router: store_1.GetterTypes.ViewRouter,
                answerListPage: store_1.GetterTypes.AnswerListPage,
                answerList: store_1.GetterTypes.AnswerList,
                isWholeAnswerList: ExternalTypes.GetterTypes.IsWholeAnswerList
            }),
            mixins: [i18n_1.i18nMixin]
        })
    ], Main);
    return Main;
}(Vue));
exports.default = Main;

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11)["default"]))

/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! store */
Object.defineProperty(exports, "__esModule", { value: true });
var getter_types_1 = __webpack_require__(2);
exports.GetterTypes = getter_types_1.default;
var mutation_types_1 = __webpack_require__(8);
exports.MutationTypes = mutation_types_1.default;
var action_types_1 = __webpack_require__(9);
exports.ActionTypes = action_types_1.default;
var external_types_1 = __webpack_require__(6);
var object_1 = __webpack_require__(12);
var logger_1 = __webpack_require__(14);
var toolbar_1 = __webpack_require__(17);
var constants_1 = __webpack_require__(3);
var Store = function ($services) {
    var State = {
        viewStyle: [],
        viewRouter: 'stats',
        answerList: [],
        answerListPage: Object.assign({
            sortKey: 'submitTime',
            current: 0,
            size: 12,
            count: 0
        }, $services.$rootStore.getters[external_types_1.GetterTypes.AnswerListPage]),
        answerDetail: {
            index: -1,
            dataIndex: -1,
            data: null
        },
        answerPreviews: [],
        answerPreivewsPage: Object.assign({
            current: 0,
            size: 6
        }, $services.$rootStore.getters[external_types_1.GetterTypes.AnswerPreivews] && $services.$rootStore.getters[external_types_1.GetterTypes.AnswerPreivews].page),
        toolbarMembers: [],
        layer: {
            toast: {
                shown: false,
                text: ''
            },
            dialog: {
                shown: false,
                text: '',
                confirm: { text: '' },
                cancel: { text: '' }
            }
        },
        modal: {
            detail: object_1.unwritable({
                shown: false,
                masked: constants_1.ModalOptions.Masked,
                closeButton: constants_1.ModalOptions.CloseButton,
                beforeClose: $services.$rootStore.getters[external_types_1.GetterTypes.ModalCloseBeforeHandler] || undefined
            }, ['masked', 'closeButton', 'beforeClose']),
            reference: null,
            parsing: null,
            statistics: null
        }
    };
    if ($services.$rootStore) {
        var toolbarMembers = $services.$rootStore.getters[external_types_1.GetterTypes.ToolbarMembers];
        if (Array.isArray(toolbarMembers) && !!toolbarMembers.length) {
            {
                var data = {
                    reference: function () { return $services.$dataParser.getReferenceData(); },
                    parsing: function () { return $services.$dataParser.getParsingData(); },
                    statistics: function () { return $services.$dataParser.getStatsData($services.$rootStore.getters[external_types_1.GetterTypes.ExamData]); }
                };
                var _loop_1 = function (key) {
                    var index = toolbarMembers.findIndex(function (item) { return typeof item === 'string' ? item === key : item.name === key || item.id === key; });
                    if (!!~index) {
                        var item = data[key]();
                        if (item) {
                            if (typeof item.value === 'string' ? !!item.value :
                                Array.isArray(item.value) ? !!item.value.length :
                                    !!item.value) {
                                State.modal[key] = object_1.unwritable({
                                    shown: false,
                                    masked: constants_1.ModalOptions.Masked,
                                    closeButton: constants_1.ModalOptions.CloseButton,
                                    data: item
                                }, ['masked', 'closeButton', 'data']);
                                return "continue";
                            }
                        }
                        toolbarMembers.splice(index, 1);
                    }
                };
                for (var key in data) {
                    _loop_1(key);
                }
            }
            State.toolbarMembers = toolbarMembers.map(function (member, index) { return toolbar_1.createToolbarMember(member, index, $services); });
        }
        {
        }
        external_types_1.registerEmptyExternalAction($services.$rootStore);
    }
    return {
        state: State,
        getters: (_a = {},
            _a[getter_types_1.default.QuestionType] = function (state) { return $services.$dataParser.getQuestionType(); },
            _a[getter_types_1.default.QuestionModel] = function (state) { return $services.$dataParser.getQuestionModel(); },
            _a[getter_types_1.default.ViewStyle] = function (state, getters) { return state.viewStyle.concat($services.$dataParser.getQuestionType() + "_content", constants_1.ViewStyles[getters[getter_types_1.default.AnswerListPage].sortKey]); },
            _a[getter_types_1.default.ViewRouter] = function (state) { return state.viewRouter; },
            _a[getter_types_1.default.AnswerDetail] = function (state) { return $services.$dataParser.getDetail(state.answerDetail); },
            _a[getter_types_1.default.AnswerList] = function (state, getters) { return $services.$dataParser.getList(getters[external_types_1.GetterTypes.AnswerList]); },
            _a[getter_types_1.default.AnswerListPage] = function (state, getters) {
                return Object.assign(state.answerListPage, getters[external_types_1.GetterTypes.AnswerListPage]);
            },
            _a[getter_types_1.default.AnswerPreviews] = function (state, getters) {
                if (getters[external_types_1.GetterTypes.IsWholeAnswerList] !== false) {
                    return Object.assign({ page: state.answerPreivewsPage }, $services.$dataParser.getPreviews(getters[getter_types_1.default.AnswerList], state.answerDetail));
                }
                else {
                    var previews = getters[external_types_1.GetterTypes.AnswerPreivews];
                    return Object.assign({ page: previews.page }, $services.$dataParser.getPreviews(previews.data, state.answerDetail));
                }
            },
            _a[getter_types_1.default.ToolbarMembers] = function (state, getters) { return state.toolbarMembers; },
            _a[getter_types_1.default.ToastLayerOptions] = function (state) { return state.layer.toast; },
            _a[getter_types_1.default.DialogLayerOptions] = function (state) { return state.layer.dialog; },
            _a[getter_types_1.default.DetailModalOptions] = function (state) { return state.modal.detail; },
            _a[getter_types_1.default.ParsingModalOptions] = function (state) { return state.modal.parsing; },
            _a[getter_types_1.default.ReferenceModalOptions] = function (state) { return state.modal.reference; },
            _a[getter_types_1.default.StatisticsModalOptions] = function (state) { return state.modal.statistics; },
            _a[getter_types_1.default.SelectorOptions] = function (state, getters) { return getters[external_types_1.GetterTypes.SelectorOptions]; },
            _a[getter_types_1.default.SelectorButtonOptions] = function (state, getters) {
                var AnswerDetail = getters[getter_types_1.default.AnswerDetail];
                var selectorOptions = getters[external_types_1.GetterTypes.SelectorOptions];
                var shown = false, textKey = 'add';
                if (selectorOptions.trigger && AnswerDetail.data) {
                    var selectedId = getters[external_types_1.GetterTypes.SelectorItems].map(function (item) { return item.studentId; });
                    var studentId = AnswerDetail.data.studentId;
                    if (selectorOptions.isReelection) {
                        var substitutedItem = getters[external_types_1.GetterTypes.SelectorSubstitutedItem];
                        var substitutedId = substitutedItem ? substitutedItem.studentId : '';
                        if (substitutedId) {
                            if (studentId === substitutedId) {
                                shown = true;
                                textKey = 'remove';
                            }
                            else {
                                shown = !!~selectedId.indexOf(studentId) && studentId !== selectorOptions.replacedId;
                            }
                        }
                        else {
                            shown = true;
                        }
                    }
                    else {
                        if (selectedId.length < selectorOptions.limit) {
                            shown = true;
                        }
                        if (!!~selectedId.indexOf(studentId)) {
                            shown = true;
                            textKey = 'remove';
                        }
                    }
                }
                return {
                    shown: shown,
                    text: $services.$i18n("popup.button.contrast." + textKey)
                };
            },
            _a),
        mutations: (_b = {},
            _b[mutation_types_1.default.SetAnswerDetail] = function (state, payload) { return object_1.update(state.answerDetail, payload); },
            _b[mutation_types_1.default.SetAnswerListPage] = function (state, payload) { return object_1.update(state.answerListPage, payload); },
            _b[mutation_types_1.default.OpenModal] = function (state, payload) {
                if (payload && payload.type && state.modal[payload.type]) {
                    state.modal[payload.type].shown = true;
                }
                else {
                    state.modal.detail.shown = true;
                }
            },
            _b[mutation_types_1.default.CloseModal] = function (state, payload) {
                if (payload && payload.type && state.modal[payload.type]) {
                    state.modal[payload.type].shown = false;
                }
                else {
                    state.modal.detail.shown = false;
                }
            },
            _b[mutation_types_1.default.ShowLayer] = function (state, payload) {
                state.layer[payload.type].text = payload.text;
                if (payload.type === 'dialog') {
                    var defaultHanlder = function () { return state.layer.dialog.shown = false; };
                    state.layer.dialog.confirm = {
                        text: payload.confirm.text || '',
                        handler: payload.confirm.handler || defaultHanlder
                    };
                    state.layer.dialog.cancel = {
                        text: payload.cancel.text || '',
                        handler: payload.cancel.handler || defaultHanlder
                    };
                }
                state.layer[payload.type].shown = true;
                if (payload.auto) {
                    setTimeout(function () {
                        state.layer[payload.type].shown = false;
                    }, +payload.auto);
                }
            },
            _b[mutation_types_1.default.HideLayer] = function (state, payload) {
                if (payload.type) {
                    state.layer[payload.type].shown = false;
                }
                else {
                    state.layer.dialog.shown = false;
                    state.layer.toast.shown = false;
                }
            },
            _b[mutation_types_1.default.ChageViewRouter] = function (state, payload) {
                state.viewRouter = payload.router;
            },
            _b[mutation_types_1.default.SetToolbarMemberActive] = function (state, _a) {
                var id = _a.id;
                state.toolbarMembers.forEach(function (member) {
                    var index = member.style.indexOf('on');
                    if (member.id === id) {
                        if (!~index)
                            member.style.push('on');
                    }
                    else {
                        if (!!~index)
                            member.style.splice(index, 1);
                    }
                });
            },
            _b),
        actions: (_c = {},
            _c[external_types_1.ActionTypes.Reset] = function (_a, payload) {
                var state = _a.state;
                state.answerList = [];
                state.answerListPage.current = 0;
                state.answerListPage.count = 0;
                state.answerDetail.index = state.answerDetail.dataIndex = -1;
                state.answerDetail.data = null;
                state.toolbarMembers.forEach(function (member) {
                    if (member.extended && Array.isArray(member.extended)) {
                        member.extended.forEach(function (item) {
                            item.selected = item.default === true;
                        });
                    }
                });
                ['dialog', 'toast'].forEach(function (item) { return state.layer[item].shown = false; });
                ['detail', 'reference', 'parsing', 'statistics'].forEach(function (item) {
                    if (state.modal[item]) {
                        state.modal[item].shown = false;
                    }
                });
            },
            _c[action_types_1.default.ClickListItem] = function (context, payload) {
                var answerList = context.getters[getter_types_1.default.AnswerList];
                var index = answerList.findIndex(function (item) { return item.studentId == payload.id; });
                var item = answerList[index];
                Promise
                    .resolve(item && item[constants_1.PrivateKey.DetailedList] === true ? { answerData: Object.assign({}, item) } : { id: payload.id })
                    .then(function (res) {
                    try {
                        return context.dispatch(external_types_1.ActionTypes.ClickListItem, res);
                    }
                    catch (e) {
                        return res;
                    }
                })
                    .then(function (res) {
                    if (!context.getters[external_types_1.GetterTypes.IsWholeAnswerList]) {
                        var previewPageSize = context.getters[getter_types_1.default.AnswerPreviews].page.size;
                        var listPage = context.getters[getter_types_1.default.AnswerListPage];
                        var startIndex = ~~((index + listPage.current * listPage.size) / previewPageSize) * previewPageSize;
                        context.dispatch(action_types_1.default.FlipPreviews, { index: startIndex });
                    }
                    if (res && res.answerData) {
                        context.commit(mutation_types_1.default.SetAnswerDetail, { index: index, data: res.answerData, dataIndex: payload.dataIndex || 0 });
                        context.commit(mutation_types_1.default.OpenModal);
                    }
                });
            },
            _c[action_types_1.default.ClickListItemThumb] = function (context, payload) {
                return context.dispatch(external_types_1.ActionTypes.ClickListItemThumb, payload);
            },
            _c[action_types_1.default.FlipList] = function (context, payload) {
                return context.dispatch(external_types_1.ActionTypes.FlipList, payload);
            },
            _c[action_types_1.default.FlipPreviews] = function (context, payload) {
                return context.dispatch(external_types_1.ActionTypes.FlipPreviews, payload);
            },
            _c[action_types_1.default.SelectItem] = function (context, payload) {
                var selectorOptions = context.getters[external_types_1.GetterTypes.SelectorOptions];
                if (selectorOptions.isReelection) {
                    var substitutedItem = context.getters[external_types_1.GetterTypes.SelectorSubstitutedItem];
                    if (substitutedItem && substitutedItem.studentId === payload.id) {
                        return context.dispatch(external_types_1.ActionTypes.SelectItem, {
                            id: payload.id,
                            select: false
                        }).then(function (res) { return ({
                            status: constants_1.SelectStatus.Success
                        }); });
                    }
                    else {
                        var index = context.getters[external_types_1.GetterTypes.SelectorItems].findIndex(function (item) { return item.studentId === payload.id; });
                        if (!!~index && payload.id !== selectorOptions.replacedId) {
                            return Promise.resolve({
                                status: constants_1.SelectStatus.HasSelected
                            });
                        }
                        else {
                            logger_1.default.info("selector: selected student, studentId = " + payload.id + ", isReelection = true");
                            return context.dispatch(external_types_1.ActionTypes.SelectItem, {
                                id: payload.id,
                                select: true,
                                selectDataIndex: payload.dataIndex
                            }).then(function (res) { return ({
                                status: constants_1.SelectStatus.Success
                            }); });
                        }
                    }
                }
                else {
                    var selectedItems = context.getters[external_types_1.GetterTypes.SelectorItems];
                    var index = selectedItems.findIndex(function (item) { return item.studentId === payload.id; });
                    if (!!~index) {
                        return context.dispatch(external_types_1.ActionTypes.SelectItem, {
                            id: payload.id,
                            select: false
                        }).then(function (res) { return ({
                            status: constants_1.SelectStatus.Success
                        }); });
                    }
                    else {
                        if (selectedItems.length === selectorOptions.limit) {
                            logger_1.default.info("selector: current selected: " + JSON.stringify(selectedItems));
                            return Promise.resolve({
                                status: constants_1.SelectStatus.OverLimit
                            });
                        }
                        else {
                            logger_1.default.info("selector: selected student, studentId = " + payload.id + ", isReelection = false");
                            return context.dispatch(external_types_1.ActionTypes.SelectItem, {
                                id: payload.id,
                                select: true,
                                selectDataIndex: payload.dataIndex
                            }).then(function (res) { return ({
                                status: constants_1.SelectStatus.Success
                            }); });
                        }
                    }
                }
            },
            _c[action_types_1.default.ClickToolbar] = function (context, payload) {
                return context.dispatch(external_types_1.ActionTypes.ClickToolbar, payload);
            },
            _c)
    };
    var _a, _b, _c;
};
exports.Store = Store;


/***/ }),
/* 24 */
/***/ (function(module, exports) {

module.exports = {
	"header.text.time": "答题时间：",
	"header.text.number": "提交人数：",
	"header.minute": "{0}分",
	"header.second": "{0}秒",
	"header.number": "{0}/{0}",
	"popup.text.answer.right": "·答对",
	"popup.text.answer.wrong": "·答错",
	"popup.text.answer.none": "·未作答",
	"popup.text.parsing": "解析",
	"popup.text.person": "人",
	"popup.button.contrast.add": "加入对比",
	"popup.button.contrast.remove": "取消对比",
	"popup.button.flower": "送一朵花",
	"popup.button.close": "关闭",
	"toolbar.button.refer": "参考答案",
	"toolbar.button.parsing": "查看解析",
	"toolbar.button.question": "查看原题",
	"toolbar.button.statistics": "返回统计",
	"toolbar.button.statis": "正误统计",
	"toolbar.button.send.continue": "继续发题",
	"toolbar.button.send.again": "再次发题",
	"toolbar.button.order.time": "时间排序",
	"toolbar.button.order.seat": "座位排序",
	"toolbar.button.order.leader": "组长优先",
	"toolbar.button.exit": "退出本题",
	"layer.contrast.added": "学生{0}已经加入对比,请选择未加入对比的学生",
	"layer.group.many": "有多个",
	"layer.group.default.name": "第{0}组",
	"layer.group.tip.offline": "{0}组长不在线，是否设置临时组长",
	"layer.button.group.yep": "是",
	"layer.button.group.nope": "否",
	"layer.flow.fail": "发题失败",
	"notice.sendflower0": "成功向{0}这{1}位同学送出1朵鲜花",
	"notice.sendflower1": "成功向{0}...等这{1}位同学送出1朵鲜花"
};

/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function($$AllocateKey) {
/*! component/list */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var list_item_1 = __webpack_require__(26);
var getter_types_1 = __webpack_require__(2);
var external_types_1 = __webpack_require__(6);
var AnswerStatsList = (function (_super) {
    __extends(AnswerStatsList, _super);
    function AnswerStatsList() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    AnswerStatsList.prototype.clickItem = function (data) {
        this.$emit('click-item', data);
    };
    AnswerStatsList.prototype.flip = function (args) {
        this.$emit('flip', args);
    };
    AnswerStatsList = __decorate([
        vue_class_component_1.MidwareComponent({
            key: $$AllocateKey('List'),
            name: "List",
            public: true,
            template: __webpack_require__(29),
            components: {
                'stats-base-list': 'Common:BaseList',
                'stats-list-item': list_item_1.default,
                'stats-pager': 'Common:Pagination'
            },
            computed: vuex_1.mapGetters({
                page: getter_types_1.default.AnswerListPage,
                list: getter_types_1.default.AnswerList,
                isWholeList: external_types_1.GetterTypes.IsWholeAnswerList
            }),
            props: {
                flower: Boolean,
                selector: Boolean,
                list: Array,
                page: Object,
                isWholeList: {
                    type: Boolean,
                    default: true
                }
            }
        })
    ], AnswerStatsList);
    return AnswerStatsList;
}(Vue));
exports.default = AnswerStatsList;

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11)["default"]))

/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/listItem */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var action_types_1 = __webpack_require__(9);
var external_types_1 = __webpack_require__(6);
var slider_1 = __webpack_require__(15);
var selector_1 = __webpack_require__(19);
var data_viewer_1 = __webpack_require__(16);
var empty_component_1 = __webpack_require__(10);
var ListItem = (function (_super) {
    __extends(ListItem, _super);
    function ListItem() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.currentDataIndex = 0;
        return _this;
    }
    Object.defineProperty(ListItem.prototype, "coverData", {
        get: function () {
            if (this.data._renderData.previews) {
                return this.data._renderData.previews[this.currentDataIndex];
            }
            else {
                return this.data._renderData;
            }
        },
        enumerable: true,
        configurable: true
    });
    ListItem.prototype.beforeCreate = function () {
        if (this.$options.components && this.$options.propsData) {
            if (this.$options.propsData['flower'] === true) {
                this.$options.components['stats-flower-button'] = Midware.componentRequire('Common:FlowerButton');
            }
            if (this.$options.propsData['selector'] === true) {
                this.$options.components['stats-selector-button'] = selector_1.default;
            }
        }
    };
    ListItem.prototype.created = function () {
        var _this = this;
        this.$watch('data', function (next, curr) { return _this.currentDataIndex = 0; });
    };
    ListItem.prototype.click = function () {
        this.$emit('click-item', {
            id: this.data.studentId,
            index: this.index,
            dataIndex: this.currentDataIndex
        });
    };
    ListItem.prototype.sliderClick = function (_a) {
        var index = _a.index;
        this.$store.dispatch(action_types_1.default.ClickListItemThumb);
        this.currentDataIndex = index;
    };
    ListItem.prototype.sendFlower = function (data) {
        this.$store.dispatch(external_types_1.ActionTypes.SendFlower, data);
    };
    ListItem = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(28),
            props: {
                data: Object,
                index: Number,
                flower: Boolean,
                selector: Boolean
            },
            components: {
                'stats-flower-button': empty_component_1.default,
                'stats-selector-button': empty_component_1.default,
                'stats-slider': slider_1.default,
                'stats-data-viewer': data_viewer_1.default
            },
        })
    ], ListItem);
    return ListItem;
}(Vue));
exports.default = ListItem;


/***/ }),
/* 27 */
/***/ (function(module, exports) {

module.exports = "<div class=\"com_send_flower_wrap icon_constrst js_selector_button\" v-if=\"$slots.default && $slots.default.length\" v-show=buttonOption.shown @click.stop=click><p class=flow_text><em class=text>{{buttonOption.text}}</em></p><div class=com_send_flower></div></div><div v-else class=icon_tick @click.stop=click></div>"

/***/ }),
/* 28 */
/***/ (function(module, exports) {

module.exports = "<div class=com_stat_list_contain @click=click :class=\"[data.extendStyle, data._renderData && data._renderData.previews && data._renderData.previews.length? 'select_pic': '' , { disabled: data._reactiveCache && data._reactiveCache.disabled, selected: data._reactiveCache && data._reactiveCache.selected }]\"><div class=com_stat_list_top><div class=com_stat_list_name_wp><span class=student :class=\"{leader_color: data.isGroupLeader}\"><span class=stat_com_icon_flag v-show=data.tag></span><span class=group v-if=data.groupName>{{data.groupName}}-</span><span class=num style=display:none;>{{data.seatNumber}}</span><span class=name>{{data.studentName}}</span></span><stats-selector-button :target=data :data-index=currentDataIndex></stats-selector-button><stats-flower-button :target=data @flower=sendFlower></stats-flower-button></div><div v-html=data.injectHTML></div></div><div class=com_stat_list_pic ref=content><stats-data-viewer :data=coverData></stats-data-viewer></div><div class=com_stat_bottom v-if=\"data._renderData && data._renderData.previews && data._renderData.previews.length\"><stats-slider class=\"com_stat_slidebox media_box js_animation\" :items=data._renderData.previews :current=currentDataIndex :limit=5 @slider-item-click=sliderClick><template scope=props><stats-data-viewer :data=props.data></stats-data-viewer></template></stats-slider></div></div>"

/***/ }),
/* 29 */
/***/ (function(module, exports) {

module.exports = "<div class=\"com_stat_layout site_sort\"><stats-base-list class=com-list-box :data=list :page=\"isWholeList ? page : null\" :isolated=isWholeList><template scope=props><stats-list-item :data=props.data :index=props.index :class=\"{on: props.selected}\" :flower=flower :selector=selector @click-item=clickItem></stats-list-item></template></stats-base-list><stats-pager v-if=page :data=\"isWholeList ? null: page\" @flip=flip></stats-pager></div>"

/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function($$AllocateKey) {
/*! component/modal */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var mutation_types_1 = __webpack_require__(8);
var modal_footer_1 = __webpack_require__(31);
var modal_content_1 = __webpack_require__(34);
var modal_content_extend_1 = __webpack_require__(36);
var modal_content_makeword_1 = __webpack_require__(38);
var modal_content_mindjet_1 = __webpack_require__(40);
var empty_component_1 = __webpack_require__(10);
var Modal = (function (_super) {
    __extends(Modal, _super);
    function Modal() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Object.defineProperty(Modal.prototype, "currentStudent", {
        get: function () {
            var data = this.$store.getters[getter_types_1.default.AnswerDetail];
            return {
                studentId: data.data ? data.data.studentId : '',
                studentName: data.data ? data.data.studentName : ''
            };
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Modal.prototype, "extended", {
        get: function () {
            var result = {
                current: '',
                style: '',
                options: null,
                data: {}
            };
            var referOptions = this.$store.getters[getter_types_1.default.ReferenceModalOptions];
            if (referOptions && referOptions.shown) {
                result.style = 'js_refer_pop';
                result.current = 'reference';
                result.options = referOptions;
                result.data = referOptions.data;
            }
            var parsingOptions = this.$store.getters[getter_types_1.default.ParsingModalOptions];
            if (parsingOptions && parsingOptions.shown) {
                result.style = 'js_parse_pop';
                result.current = 'parsing';
                result.options = parsingOptions;
                result.data = parsingOptions.data;
            }
            var statsOptions = this.$store.getters[getter_types_1.default.StatisticsModalOptions];
            if (statsOptions && statsOptions.shown) {
                result.style = 'js_stats_pop puzzle';
                result.current = 'statistics';
                result.options = statsOptions;
                result.data = statsOptions.data;
            }
            return result;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Modal.prototype, "componentOptions", {
        get: function () {
            var content = 'stats-modal-content';
            var footer = 'stats-modal-footer';
            var questionType = this.$store.getters[getter_types_1.default.QuestionType];
            switch (questionType.toLowerCase()) {
                case 'makeword':
                    content = 'stats-modal-content-makeword';
                    footer = 'stats-empty-component';
                    break;
                case 'mindjet':
                    content = 'stats-modal-content-mindjet';
                    footer = 'stats-empty-component';
                    break;
                case 'compositionoutline':
                    var data = this.$store.getters[getter_types_1.default.AnswerDetail];
                    if (data && data.data && data.data._renderType === 'mindjet') {
                        content = 'stats-modal-content-mindjet';
                        footer = 'stats-empty-component';
                    }
                default: break;
            }
            return {
                content: content,
                footer: footer
            };
        },
        enumerable: true,
        configurable: true
    });
    Modal.prototype.close = function (type) {
        if (window['NDMediaPlayer'] && NDMediaPlayer.mediaPauseAll) {
            NDMediaPlayer.mediaPauseAll();
        }
        var $media = this.$el.querySelectorAll('audio, video');
        if ($media.length) {
            Array.prototype.forEach.call($media, function ($item) { return $item.pause(); });
        }
        this.$store.commit(mutation_types_1.default.CloseModal, { type: type });
    };
    Modal = __decorate([
        vue_class_component_1.MidwareComponent({
            key: $$AllocateKey('Modal'),
            public: true,
            template: __webpack_require__(43),
            computed: vuex_1.mapGetters({
                detailOptions: getter_types_1.default.DetailModalOptions
            }),
            components: {
                'stats-base-modal': 'Common:Modal',
                'stats-modal-content-extend': modal_content_extend_1.default,
                'stats-modal-footer': modal_footer_1.default,
                'stats-modal-content': modal_content_1.default,
                'stats-modal-content-makeword': modal_content_makeword_1.default,
                'stats-modal-content-mindjet': modal_content_mindjet_1.default,
                'stats-empty-component': empty_component_1.default
            },
            props: {
                flower: Boolean,
                selector: Boolean
            }
        })
    ], Modal);
    return Modal;
}(Vue));
exports.default = Modal;

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11)["default"]))

/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/modalFooter */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var selector_1 = __webpack_require__(19);
var slider_1 = __webpack_require__(15);
var slider_lazy_1 = __webpack_require__(32);
var data_viewer_1 = __webpack_require__(16);
var empty_component_1 = __webpack_require__(10);
var getter_types_1 = __webpack_require__(2);
var action_types_1 = __webpack_require__(9);
var mutation_types_1 = __webpack_require__(8);
var external_types_1 = __webpack_require__(6);
var i18n_1 = __webpack_require__(7);
var ModalFooter = (function (_super) {
    __extends(ModalFooter, _super);
    function ModalFooter() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.hasShow = false;
        return _this;
    }
    Object.defineProperty(ModalFooter.prototype, "sliderIndex", {
        get: function () {
            var data = this.$store.getters[getter_types_1.default.AnswerDetail];
            if (this.previews.isStudentList) {
                return this.previews.data.findIndex(function (item) { return item.studentId === data.data.studentId; });
            }
            else {
                return data.dataIndex;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ModalFooter.prototype, "previews", {
        get: function () {
            var previews = this.$store.getters[getter_types_1.default.AnswerPreviews];
            if (this.hasShow) {
                return previews;
            }
            return { data: [], page: previews.page };
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ModalFooter.prototype, "previewsNum", {
        get: function () {
            if (this.previews.isStudentList === true) {
                var examInfo = this.$store.getters[external_types_1.GetterTypes.ExamData];
                return (examInfo && examInfo.totalCount) || 0;
            }
            return 0;
        },
        enumerable: true,
        configurable: true
    });
    ModalFooter.prototype.beforeCreate = function () {
        if (this.$options.components && this.$options.propsData) {
            if (this.$options.propsData['flower'] === true) {
                this.$options.components['stats-flower-button'] = Midware.componentRequire('Common:FlowerButton');
            }
            if (this.$options.propsData['selector'] === true) {
                this.$options.components['stats-selector-button'] = selector_1.default;
            }
        }
    };
    ModalFooter.prototype.created = function () {
        var _this = this;
        this.$watch('shown', function (next, curr) {
            if (next === true) {
                if (!_this.hasShow)
                    _this.hasShow = true;
                _this.$children.forEach(function ($child) {
                    if ($child.$options.name === 'stats-slider' || $child.$options.name === 'stats-slider-lazy') {
                        $child.$children.forEach(function ($item) {
                            if ($item.$options.name === 'stats-data-viewer') {
                                $item.$forceUpdate();
                            }
                        });
                    }
                });
            }
        });
    };
    ModalFooter.prototype.sliderClick = function (_a) {
        var index = _a.index;
        if (this.previews.isStudentList) {
            this.$store.dispatch(action_types_1.default.ClickListItem, {
                id: this.previews.data[index].studentId
            });
        }
        else {
            this.$store.commit(mutation_types_1.default.SetAnswerDetail, { dataIndex: index });
        }
    };
    ModalFooter.prototype.sliderSlide = function (_a) {
        var dire = _a.dire;
        if (this.previews.isStudentList && !this.isWholeList) {
            this.$store.dispatch(action_types_1.default.FlipPreviews, { index: dire === 'next' ? this.previews.page.start + 6 : this.previews.page.start - 6 });
        }
    };
    ModalFooter.prototype.sendFlower = function (data) {
        this.$store.dispatch(external_types_1.ActionTypes.SendFlower, data);
    };
    ModalFooter = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(33),
            components: {
                'stats-flower-button': empty_component_1.default,
                'stats-selector-button': empty_component_1.default,
                'stats-slider': slider_1.default,
                'stats-slider-lazy': slider_lazy_1.default,
                'stats-data-viewer': data_viewer_1.default
            },
            computed: vuex_1.mapGetters({
                target: getter_types_1.default.AnswerDetail,
                isWholeList: external_types_1.GetterTypes.IsWholeAnswerList
            }),
            props: {
                shown: Boolean,
                flower: Boolean,
                selector: Boolean
            },
            mixins: [i18n_1.i18nMixin]
        })
    ], ModalFooter);
    return ModalFooter;
}(Vue));
exports.default = ModalFooter;


/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/sliderLazy */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var LIST_FLOW_STYLE = 'flow';
var SliderLazy = (function (_super) {
    __extends(SliderLazy, _super);
    function SliderLazy() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    SliderLazy.prototype.created = function () {
        var _this = this;
        this.$watch('totalIndex', function (next, curr) {
            _this.$el.querySelector('.slide_next').classList[next + _this.limit >= _this.total ? 'add' : 'remove']('disabled');
            _this.$el.querySelector('.slide_prev').classList[next <= 0 ? 'add' : 'remove']('disabled');
        });
        this.$watch('total', function (next, curr) {
            _this.limit && _this.$el.classList[_this.total > _this.limit ? 'add' : 'remove'](LIST_FLOW_STYLE);
        });
    };
    SliderLazy.prototype.mounted = function () {
        this.limit && this.$el.classList[this.total > this.limit ? 'add' : 'remove'](LIST_FLOW_STYLE);
    };
    SliderLazy.prototype.select = function (index) {
        this.$emit('slider-item-click', { index: index, data: this.items[index] });
    };
    SliderLazy.prototype.slide = function (dire) {
        this.$emit('slider-button-click', { dire: dire });
    };
    SliderLazy = __decorate([
        vue_class_component_1.default({
            name: 'stats-slider-lazy',
            template: __webpack_require__(18),
            props: {
                items: Array,
                current: Number,
                limit: Number,
                total: Number,
                totalIndex: Number
            }
        })
    ], SliderLazy);
    return SliderLazy;
}(Vue));
exports.default = SliderLazy;


/***/ }),
/* 33 */
/***/ (function(module, exports) {

module.exports = "<div class=pop_foot><div class=constrst_wrap><div class=wrap><stats-selector-button :target=target.data><span>{{ $i18n('popup.button.contrast.add') }}</span></stats-selector-button><stats-flower-button :target=target.data @flower=sendFlower><span>{{ $i18n('popup.button.flower') }}</span></stats-flower-button></div></div><template v-if=previews.isStudentList><stats-slider-lazy v-if=!isWholeList class=\"com_stat_slidebox slidebox_big student_box\" :shown=shown :items=previews.data :current=sliderIndex :limit=previews.page.size :total=previewsNum :total-index=previews.page.start @slider-item-click=sliderClick @slider-button-click=sliderSlide><template scope=props><span class=text_top><span class=stat_com_icon_flag v-if=props.data.tag></span> <em class=\"name text_overflow_el\">{{props.data.studentName}}</em></span><stats-data-viewer :data=props.data._renderData></stats-data-viewer></template></stats-slider-lazy><stats-slider v-else class=\"com_stat_slidebox slidebox_big student_box\" :shown=shown :items=previews.data :current=sliderIndex :limit=previews.page.size :total=previewsNum :total-index=previews.page.start @slider-item-click=sliderClick @slider-button-click=sliderSlide><template scope=props><span class=text_top><span class=stat_com_icon_flag v-if=props.data.tag></span> <em class=\"name text_overflow_el\">{{props.data.studentName}}</em></span><stats-data-viewer :data=props.data._renderData></stats-data-viewer></template></stats-slider></template><stats-slider v-else class=\"com_stat_slidebox slidebox_big media_box\" :shown=shown :items=previews.data :current=sliderIndex :limit=previews.page.size @slider-item-click=sliderClick><template scope=props><stats-data-viewer :data=props.data :class=props.data.data_type></stats-data-viewer></template></stats-slider></div>"

/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/modalContent */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var get_qtiplayer_1 = __webpack_require__(13);
var SELECTOR_MEDIA = '.js_media_content';
var SELECTOR_PUZZLE = '.js_puzzle_content';
var ModalContent = (function (_super) {
    __extends(ModalContent, _super);
    function ModalContent() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.qtiplayer = null;
        return _this;
    }
    Object.defineProperty(ModalContent.prototype, "detailData", {
        get: function () {
            var data = this.$store.getters[getter_types_1.default.AnswerDetail];
            return data && data.data ? data.data._renderData : {};
        },
        enumerable: true,
        configurable: true
    });
    ModalContent.prototype.updated = function () {
        var _this = this;
        if (!this.shown)
            return;
        this.$nextTick(function () {
            switch (_this.detailData.type) {
                case 'audio':
                case 'video':
                    if (window['NDMediaPlayer']) {
                        var $el = _this.$el.querySelector(SELECTOR_MEDIA);
                        var option_1 = Object.assign({}, _this.detailData.option);
                        if ($el) {
                            option_1.video.width = option_1.audio.width = $el.offsetWidth;
                            option_1.video.height = option_1.audio.height = $el.offsetHeight;
                            var res = NDMediaPlayer.render($el, _this.detailData.option);
                            for (var k in res) {
                                res[k].mediaPlay && res[k].mediaPlay();
                            }
                        }
                    }
                    break;
                case 'puzzle':
                    if (!_this.qtiplayer) {
                        _this.qtiplayer = get_qtiplayer_1.default();
                    }
                    var option = Object.assign({}, _this.detailData.option);
                    var $container = _this.$el.querySelector(SELECTOR_PUZZLE);
                    option.expectWidth = $container.offsetWidth;
                    option.expectHeight = $container.offsetHeight;
                    _this.qtiplayer.setAnswer(_this.detailData.value);
                    _this.qtiplayer.render($container, option);
                    break;
                default: break;
            }
        });
    };
    ModalContent = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(35),
            props: {
                shown: Boolean
            }
        })
    ], ModalContent);
    return ModalContent;
}(Vue));
exports.default = ModalContent;


/***/ }),
/* 35 */
/***/ (function(module, exports) {

module.exports = "<div class=\"pop_wrap pop_slidebottom\"><div v-if=\"detailData && detailData.type\" class=content><div v-if=\"detailData.type === 'image'\" class=\"student_screen student_screen_pic_bg\"><img :src=detailData.value></div><div v-else-if=\"detailData.type === 'text'\" class=\"content scrollbar_style_light\" style=text-align:left;><p class=\"pop_text view_text\">{{detailData.value}}</p></div><div v-else-if=\"detailData.type === 'audio'\" class=student_screen><div class=js_media_content style=height:100%;><audio :src=detailData.value></audio></div></div><div v-else-if=\"detailData.type === 'vedio'\" class=student_screen><div class=js_media_content style=height:100%;><video :src=detailData.value></video></div></div><div v-else-if=\"detailData.type === 'composition'\" class=stat_composition><div class=stat_composition_title>{{detailData.value.title}}</div><div class=\"student_screen student_screen_pic_bg\"><img :src=detailData.value.content></div></div><div v-else-if=\"detailData.type === 'puzzle'\" class=student_screen_puzzle><div class=\"js_puzzle_content pic-vertical-mc\"></div></div><div v-else-if=\"detailData.type === 'wordcard'\" class=student_screen><div class=\"bh_exercise wordcard_pop_view\" v-show=\"detailData.value.trace || detailData.value.writes.length\"><div class=simutate><div class=pinyinwrap><p class=pinyin><em class=word>{{detailData.value.pinyin}}</em></p></div><div class=wordwrap_large><img :src=detailData.value.trace></div></div><div class=write><ul class=clearfix><li class=wordwrap_small v-for=\"(item,index) in detailData.value.writes\" :key=index><img :src=item></li></ul></div></div></div><div v-else-if=\"detailData.type === 'englishcard'\" class=stat_englishCard><div class=stat_englishCard_title>{{detailData.value.title}}</div><div class=student_screen><div class=pic_englishCard_bg><img :src=detailData.value.trace></div></div></div></div><div v-else class=js_plugin_popup_content style=height:100%;position:relative;></div></div>"

/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/modalContentExtend */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var slider_1 = __webpack_require__(15);
var data_viewer_1 = __webpack_require__(16);
var i18n_1 = __webpack_require__(7);
var ModalContentExtend = (function (_super) {
    __extends(ModalContentExtend, _super);
    function ModalContentExtend() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.dataIndex = 0;
        return _this;
    }
    ModalContentExtend.prototype.created = function () {
        var _this = this;
        this.$watch('shown', function (next, curr) {
            if (next) {
                _this.renderContent();
            }
        });
        this.$watch('dataIndex', function (next, curr) {
            var type = _this.data.type;
            if (type === 'list') {
                type = _this.data.value[next].type;
                if (_this.data.value[curr]) {
                    switch (_this.data.value[curr].type) {
                        case 'audio':
                        case 'video':
                            var $el = _this.$el.querySelector(".js_" + _this.data.value[curr].type + "_content");
                            if ($el) {
                                $el.innerHTML = '';
                            }
                            break;
                        default: break;
                    }
                }
            }
            switch (type) {
                case 'audio':
                case 'video':
                    _this.$nextTick(function () {
                        if (window['NDMediaPlayer']) {
                            var $el = _this.$el.querySelector(".js_" + type + "_content");
                            var $media = document.createElement(type);
                            $media.src = _this.data.value[next].value;
                            $el.appendChild($media);
                            var option = _this.data.value[next].option;
                            if ($el) {
                                option.video.width = option.audio.width = $el.offsetWidth;
                                option.video.height = option.audio.height = $el.offsetHeight;
                                var res = NDMediaPlayer.render($el, _this.data.value[next].option);
                                for (var k in res) {
                                    res[k].mediaPlay && res[k].mediaPlay();
                                }
                            }
                        }
                    });
                    break;
                default:
                    _this.$nextTick(function () {
                        if (typeof MathJax !== 'undefined') {
                            MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
                        }
                    });
                    break;
            }
        });
        if (this.shown) {
            this.renderContent();
        }
    };
    ModalContentExtend.prototype.sliderClick = function (_a) {
        var index = _a.index;
        this.dataIndex = index;
    };
    ModalContentExtend.prototype.renderContent = function () {
        var _this = this;
        this.dataIndex = 0;
        var type = this.data.type === 'list' ? this.data.value[this.dataIndex].type : this.data.type;
        switch (type) {
            case 'chart':
                this.$nextTick(function () {
                    var width = _this.$el.offsetWidth - 50, height = _this.$el.offsetHeight - 50;
                    var cx = width / 2, cy = height / 2, r = height / 5;
                    var fontSize = parseInt(window.getComputedStyle(_this.$el)['font-size']) * 0.8;
                    var $canvas = _this.$el.querySelector('canvas');
                    var context = $canvas.getContext('2d');
                    $canvas.width = width;
                    $canvas.height = height;
                    context.font = "bold " + fontSize + "px Times New Roman";
                    var startAngle = 0;
                    [{
                            text: _this['$i18n']('popup.text.answer.right'),
                            color: '#5bbb84',
                            angle: _this.data.value.right / _this.data.value.total * 360 * (Math.PI / 180)
                        }, {
                            text: _this['$i18n']('popup.text.answer.wrong'),
                            color: '#e57b5c',
                            angle: _this.data.value.error / _this.data.value.total * 360 * (Math.PI / 180)
                        }, {
                            text: _this['$i18n']('popup.text.answer.none'),
                            color: '#949494',
                            angle: _this.data.value.undo / _this.data.value.total * 360 * (Math.PI / 180)
                        }].forEach(function (item, index) {
                        var endAngle = item.angle + startAngle;
                        context.fillStyle = item.color;
                        context.beginPath();
                        context.moveTo(cx, cy);
                        context.arc(cx, cy, r, startAngle, endAngle);
                        context.fill();
                        startAngle = endAngle;
                        context.fillRect(cx + r + 18, cy - r + index * fontSize * 1.4, fontSize, fontSize);
                        context.fillStyle = '#542d00';
                        context.fillText(item.text, cx + r + 18 * 1.3 + fontSize, cy - r + index * fontSize * 1.4 + fontSize * .85);
                    });
                });
                break;
            case 'image':
                break;
            default:
                if (typeof MathJax !== 'undefined') {
                    this.$nextTick(function () {
                        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
                    });
                }
                break;
        }
    };
    ModalContentExtend = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(37),
            components: {
                'stats-slider': slider_1.default,
                'stats-data-viewer': data_viewer_1.default
            },
            props: {
                data: Object,
                shown: Boolean
            },
            mixins: [i18n_1.i18nMixin]
        })
    ], ModalContentExtend);
    return ModalContentExtend;
}(Vue));
exports.default = ModalContentExtend;


/***/ }),
/* 37 */
/***/ (function(module, exports) {

module.exports = "<div v-if=\"data.type === 'list'\" class=js_extend_pop_list style=width:100%;height:100%;><div class=\"pop_wrap pop_slidebottom\" v-if=data.value.length><div v-if=\"data.value[dataIndex].type === 'image'\" class=\"student_screen student_screen_pic_bg\"><img :src=data.value[dataIndex].value></div><div v-else-if=\"data.value[dataIndex].type === 'text'\" class=\"content scrollbar_style_light\" style=text-align:left;><p class=\"pop_text view_text\" v-html=data.value[dataIndex].value></p></div><div v-else-if=\"data.value[dataIndex].type === 'audio'\" class=\"student_screen js_audio_content\" style=height:100%;></div><div v-else-if=\"data.value[dataIndex].type === 'video'\" class=\"student_screen js_video_content\" style=height:100%;></div></div><div class=pop_foot><stats-slider class=\"com_stat_slidebox slidebox_big media_box\" :items=data.value :current=dataIndex @slider-item-click=sliderClick><template scope=props><stats-data-viewer :data=props.data :class=props.data.data_type></stats-data-viewer></template></stats-slider></div></div><div v-else class=pop_wrap><div v-if=\"data.type === 'image'\" class=puzzle_correct_answer><img class=imgwh100 :src=data.value></div><div v-else-if=\"data.type === 'text'\" class=\"js_extend_pop_text content content_wrap\" style=height:100%;><div class=\"text_wrap layout_scroll scrollbar_style_light_color\"><h2 class=pop_title>{{ $i18n('popup.text.parsing') }}</h2><div class=pop_text v-html=data.value></div></div></div><div v-else-if=\"data.type === 'chart'\" class=puzzle_statistics><div class=title>{{ $i18n('toolbar.button.statis') }}</div><div class=\"labels correct\"><p class=labels_title>{{ $i18n('popup.text.answer.right') }}</p><p class=labels_text><span class=\"num correct_count\">{{ data.value.right }}</span> <span>{{ $i18n('popup.text.person') }}</span>( <span class=\"percent correct_count_percent\">{{ Math.round(data.value.right / data.value.total * 100) + '%'}}</span>)</p></div><div class=\"labels error\"><p class=labels_title>{{ $i18n('popup.text.answer.wrong') }}</p><p class=labels_text><span class=\"num error_count\">{{ data.value.error }}</span> <span>{{ $i18n('popup.text.person') }}</span>( <span class=\"percent error_count_percent\">{{ Math.round(data.value.error / data.value.total * 100) + '%' }}</span>)</p></div><div class=\"labels no_answer\"><p class=labels_title>{{ $i18n('popup.text.answer.none') }}</p><p class=labels_text><span class=\"num un_count\">{{ data.value.undo }}</span> <span>{{ $i18n('popup.text.person') }}</span>( <span class=\"percent un_count_percent\">{{ Math.round(data.value.undo / data.value.total * 100) + '%' }}</span>)</p></div><div class=\"labels canvas\"><canvas></canvas></div></div></div>"

/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/modalContentMakeword */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var external_types_1 = __webpack_require__(6);
var empty_component_1 = __webpack_require__(10);
var i18n_1 = __webpack_require__(7);
var REFER_EM_SIZE = 66.75;
var ModalContentMakeWord = (function (_super) {
    __extends(ModalContentMakeWord, _super);
    function ModalContentMakeWord() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.currentIndex = 0;
        _this.hasSetFontSize = false;
        return _this;
    }
    Object.defineProperty(ModalContentMakeWord.prototype, "questionModel", {
        get: function () {
            var model = {
                title: '',
                type: 0,
                words: []
            };
            var questionModel = this.$store.getters[getter_types_1.default.QuestionModel];
            if (questionModel) {
                model.title = questionModel.title;
                model.type = questionModel.content.type;
                model.words = questionModel.content.pages.map(function (item) { return item; });
            }
            return model;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ModalContentMakeWord.prototype, "phraseBoxStyles", {
        get: function () {
            var styles = [];
            var itemLength = this.questionModel.words.length ? this.questionModel.words[this.currentIndex].items.length : 0;
            var maxLineSize = 0;
            ((this.questionModel.words.length && this.questionModel.words[this.currentIndex].items) || []).forEach(function (item) {
                maxLineSize = Math.max(maxLineSize, item.answers.length);
            });
            if (itemLength > 1 && itemLength < 6) {
                styles.push("phrase_list" + itemLength);
            }
            if (maxLineSize < 3) {
                styles.push("phrase_w" + maxLineSize);
            }
            return styles;
        },
        enumerable: true,
        configurable: true
    });
    ModalContentMakeWord.prototype.beforeCreate = function () {
        if (this.$options.components && this.$options.propsData) {
            if (this.$options.propsData['flower'] === true) {
                this.$options.components['stats-flower-button'] = Midware.componentRequire('Common:FlowerButton');
            }
        }
    };
    ModalContentMakeWord.prototype.created = function () {
        var _this = this;
        this.$watch('shown', function (next, curr) {
            if (next === true) {
                _this.currentIndex = 0;
            }
            if (!_this.hasSetFontSize) {
                var fontSize = parseFloat(window.getComputedStyle(_this.$el)['font-size']);
                var width = _this.$el.getBoundingClientRect().width;
                var currentEm = width / fontSize / REFER_EM_SIZE;
                _this.$refs['contentBox'].style['fontSize'] = currentEm + "em";
                _this.hasSetFontSize = true;
            }
        });
    };
    ModalContentMakeWord.prototype.click = function (index) {
        this.currentIndex = index;
    };
    ModalContentMakeWord.prototype.sendFlower = function (data) {
        this.$store.dispatch(external_types_1.ActionTypes.SendFlower, data);
    };
    ModalContentMakeWord = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(39),
            components: {
                'stats-flower-button': empty_component_1.default
            },
            computed: vuex_1.mapGetters({
                detail: getter_types_1.default.AnswerDetail
            }),
            props: {
                shown: Boolean,
                flower: Boolean,
                selector: Boolean
            },
            mixins: [i18n_1.i18nMixin]
        })
    ], ModalContentMakeWord);
    return ModalContentMakeWord;
}(Vue));
exports.default = ModalContentMakeWord;


/***/ }),
/* 39 */
/***/ (function(module, exports) {

module.exports = "<div class=\"pop_wrap layout_handwriting\"><div class=nhw_wrap_handwriting ref=content><div class=nhw_handwriting_bd><h2 class=nhw_handwriting_tit><span class=txt>{{questionModel.title}}</span></h2><div class=nhw_phrase_wrap><div class=nhw_phrase_box :class=phraseBoxStyles ref=contentBox v-if=questionModel.words.length><span class=phrase_word v-if=\"questionModel && questionModel.type == 0\">{{questionModel.words[currentIndex].character}}</span><div class=phrase_wrap><span class=brace_big></span><ul><li v-for=\"item in questionModel.words[currentIndex].items\"><p class=spell_text v-if=\"questionModel.words[currentIndex].hidePinyin || !item.character\">&nbsp;</p><p class=spell_text v-else><input type=text readonly :value=item.character></p><div class=brace><p v-for=\"i in item.answers\" class=brace_small><input type=text readonly></p></div></li></ul></div></div><div class=mark_image><img v-if=detail.data :src=\"detail.data._renderData && detail.data._renderData.value[currentIndex]\"></div></div></div><div class=nhw_handwriting_ft><a href=javascript:; class=nhw_btn v-for=\"(item, index) in questionModel.words\" :class=\"{on:currentIndex === index}\" @click=click(index)><span class=nhw_txt>{{item.title}}</span></a></div><stats-flower-button :target=detail.data @flower=sendFlower><span>{{ $i18n('popup.button.flower') }}</span></stats-flower-button></div></div>"

/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/modalContentMindjet */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var get_event_point_1 = __webpack_require__(41);
var getter_types_1 = __webpack_require__(2);
var external_types_1 = __webpack_require__(6);
var empty_component_1 = __webpack_require__(10);
var SELECTOR_MINDJET = '.js_mindjet_content';
var SELECTOR_MINDJET_PROGRESS = '.js_mindjet_progress';
var SELECTOR_MINDJET_BUTTON_SCALE = '.js_btn_scale';
var i18n_1 = __webpack_require__(7);
var ModalContentMindjet = (function (_super) {
    __extends(ModalContentMindjet, _super);
    function ModalContentMindjet() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.minderMap = null;
        _this.cached = {};
        return _this;
    }
    ModalContentMindjet.prototype.beforeCreate = function () {
        if (this.$options.components && this.$options.propsData) {
            if (this.$options.propsData['flower'] === true) {
                this.$options.components['stats-flower-button'] = Midware.componentRequire('Common:FlowerButton');
            }
        }
    };
    ModalContentMindjet.prototype.created = function () {
        var _this = this;
        this.$watch('shown', function (next, curr) {
            if (next) {
                _this.renderContent();
            }
        });
        if (this.shown) {
            this.renderContent();
        }
    };
    ModalContentMindjet.prototype.destroyed = function () {
        if (this.minderMap) {
            this.minderMap.destroy();
        }
    };
    ModalContentMindjet.prototype.renderContent = function () {
        var _this = this;
        if (this.detail.data && this.detail.data._renderData) {
            switch (this.detail.data._renderData.type) {
                case 'mindjet':
                    if (window['MinderMap']) {
                        if (this.minderMap) {
                            this.minderMap.destroy();
                        }
                        this.$nextTick(function () {
                            _this.minderMap = MinderMap.create(_this.detail.data._renderData.option);
                            _this.minderMap.setData(_this.detail.data._renderData.value);
                            _this.minderMap.render(_this.$el.querySelector(SELECTOR_MINDJET));
                            _this.minderMap.matchParent();
                            _this.minderMap.on('scale', function (scale) {
                                var $scale = _this.$el.querySelector(SELECTOR_MINDJET_BUTTON_SCALE);
                                var num = scale * 100 + 0.00001;
                                $scale.setAttribute('data-num', parseInt(num + '') + "%");
                                $scale.style.left = 100 * (num - 10) / 240 + "%";
                            });
                            var $scale = _this.$el.querySelector(SELECTOR_MINDJET_BUTTON_SCALE);
                            $scale.style.left = '37.5%';
                            $scale.setAttribute('data-num', '100%');
                        });
                    }
                    break;
                default:
                    if (this.minderMap) {
                        this.minderMap.destroy();
                        delete this.minderMap;
                    }
                    break;
            }
        }
    };
    ModalContentMindjet.prototype.scale = function (number) {
        var $body = this.$el.querySelector('.mindMap_body');
        if ($body) {
            var $scale = this.$el.querySelector(SELECTOR_MINDJET_BUTTON_SCALE);
            var num = $scale.getAttribute('data-num');
            var matched = num.match(/(\d\d*)/);
            if (matched) {
                num = matched[1];
            }
            var result = (+num + number) * 1 / 100;
            result = result < 0.1 ? 0.1 : (result > 2.5 ? 2.5 : result);
            if (this.minderMap) {
                this.minderMap.scale(result);
            }
        }
    };
    ModalContentMindjet.prototype.start = function (event) {
        var $scale = this.$el.querySelector(SELECTOR_MINDJET_BUTTON_SCALE);
        var computedStyle = window.getComputedStyle($scale);
        this.cached.start = get_event_point_1.default(event);
        this.cached.startLeft = parseFloat((computedStyle && computedStyle.left) || '0');
        this.cached.isStart = true;
        this.cached.hasMoved = false;
        $scale.classList.add('ui_btn_active');
    };
    ModalContentMindjet.prototype.move = function (event) {
        if (!this.cached.isStart)
            return;
        var $progress = this.$el.querySelector(SELECTOR_MINDJET_PROGRESS);
        var width = $progress.offsetWidth;
        var end = get_event_point_1.default(event);
        var left = 0;
        if (this.cached.hasMoved) {
            left = end.x - this.cached.start.x + this.cached.startLeft;
        }
        else {
            left = end.x - $progress.getBoundingClientRect().left;
        }
        left = left <= 0 ? 0 : (left > width ? width : left);
        if (this.minderMap) {
            this.minderMap.scale((left) * 1.0 / width * 24 / 9);
        }
        this.cached.hasMoved = true;
    };
    ModalContentMindjet.prototype.end = function (event) {
        this.cached.isStart = false;
        var $scale = this.$el.querySelector(SELECTOR_MINDJET_BUTTON_SCALE);
        $scale.classList.remove('ui_btn_active');
    };
    ModalContentMindjet.prototype.sendFlower = function (data) {
        this.$store.dispatch(external_types_1.ActionTypes.SendFlower, data);
    };
    ModalContentMindjet = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(42),
            components: {
                'stats-flower-button': empty_component_1.default
            },
            computed: vuex_1.mapGetters({
                detail: getter_types_1.default.AnswerDetail
            }),
            props: {
                shown: Boolean,
                flower: Boolean,
                selector: Boolean
            },
            mixins: [i18n_1.i18nMixin]
        })
    ], ModalContentMindjet);
    return ModalContentMindjet;
}(Vue));
exports.default = ModalContentMindjet;


/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function getEventPoint(e) {
    if (e.pageX) {
        return {
            x: e.pageX,
            y: e.pageY
        };
    }
    else {
        var toucher = [e.type === 'touchend' ? 'changedTouches' : 'targetTouches'][0] || e.touches[0];
        return {
            x: toucher.pageX,
            y: toucher.pageY
        };
    }
}
exports.default = getEventPoint;
;


/***/ }),
/* 42 */
/***/ (function(module, exports) {

module.exports = "<div class=\"pop_wrap exam_statistics mindjet\" @mousemove=move @mouseup=end><div class=exam_mindMap_view><div class=\"mindMap_content js_mindjet_content\"></div></div><div class=exam_mindMap_operate><div class=mindMap_progress_item><a href=javascript:void(0); ondragstart=\"return false;\" class=btn_plus @click=scale(10)></a> <a href=javascript:void(0); ondragstart=\"return false;\" class=btn_minus @click=scale(-10)></a><div class=\"mindMap_progress_box js_mindjet_progress\" @touchstart=start @touchmove=move @touchend=end @mousedown=start><a href=javascript:void(0); ondragstart=\"return false ;\" class=\"btn_scale js_btn_scale\" data-num=100% style=\"left: 50%;\"></a></div></div></div><stats-flower-button :target=detail.data @flower=sendFlower><span>{{ $i18n('popup.button.flower') }}</span></stats-flower-button></div>"

/***/ }),
/* 43 */
/***/ (function(module, exports) {

module.exports = "<div><stats-base-modal class=\"com_pop com_pop_mid js_detail_pop\" :options=detailOptions @close=\"close('detail')\"><div class=pop_tit><em class=font>{{currentStudent.studentName}}</em></div><component :is=componentOptions.content :shown=detailOptions.shown :flower=flower :selector=selector></component><component :is=componentOptions.footer :shown=detailOptions.shown :flower=flower :selector=selector></component></stats-base-modal><stats-base-modal class=\"com_pop com_pop_mid\" v-if=extended.options :class=extended.style :options=extended.options @close=close(extended.current)><stats-modal-content-extend :data=extended.data :shown=extended.options.shown></stats-modal-content-extend></stats-base-modal></div>"

/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/toolbar */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var toolbar_extended_1 = __webpack_require__(45);
var Toolbar = (function (_super) {
    __extends(Toolbar, _super);
    function Toolbar() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Object.defineProperty(Toolbar.prototype, "extends", {
        get: function () {
            var list = [];
            var members = this.$store.getters[getter_types_1.default.ToolbarMembers];
            members.forEach(function (member) {
                if (member.extended) {
                    list.push(member.id);
                }
            });
            return list;
        },
        enumerable: true,
        configurable: true
    });
    Toolbar.prototype.render = function (h) {
        var scopedSlots = {};
        this.extends.forEach(function (extend) {
            scopedSlots[extend] = function (props) { return h('stats-toolbar-button-extended', {
                props: {
                    data: props
                }
            }); };
        });
        return h('div', {
            attrs: { 'class': 'layout_footer layout_footer_bottom' }
        }, [h('stats-base-toolbar', {
                'class': 'k12-footer-tool',
                props: {
                    side: 'right',
                    members: this.members
                },
                scopedSlots: scopedSlots
            }, [].concat(h('div', {
                attrs: {
                    'class': 'js_inject_toolbar'
                },
                slot: 'panel'
            })))]);
    };
    Toolbar = __decorate([
        vue_class_component_1.default({
            components: {
                'stats-base-toolbar': Midware.componentRequire('Common:Toolbar'),
                'stats-toolbar-button-extended': toolbar_extended_1.default
            },
            computed: vuex_1.mapGetters({
                members: getter_types_1.default.ToolbarMembers
            })
        })
    ], Toolbar);
    return Toolbar;
}(Vue));
exports.default = Toolbar;


/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/toolbarExtended */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var ToolbarExtended = (function (_super) {
    __extends(ToolbarExtended, _super);
    function ToolbarExtended() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ToolbarExtended.prototype.itemClick = function (index) {
        this.data.data.forEach(function (item, i) { return item.selected = index === i; });
        if (typeof this.data.data[index].handler === 'function') {
            this.data.data[index].handler();
        }
    };
    ToolbarExtended = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(46),
            props: {
                data: Object
            }
        })
    ], ToolbarExtended);
    return ToolbarExtended;
}(Vue));
exports.default = ToolbarExtended;


/***/ }),
/* 46 */
/***/ (function(module, exports) {

module.exports = "<div class=selected><i class=tips></i> <a href=javascript:; class=options v-for=\"(item, index) in data.data\" :key=index :class={on:item.selected} @click=itemClick(index)>{{item.text}}</a></div>"

/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/header */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vue_class_component_1 = __webpack_require__(1);
var external_types_1 = __webpack_require__(6);
var i18n_1 = __webpack_require__(7);
var Header = (function (_super) {
    __extends(Header, _super);
    function Header() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Object.defineProperty(Header.prototype, "examData", {
        get: function () {
            var examInfo = this.$store.getters[external_types_1.GetterTypes.ExamData];
            var minute = Math.floor(examInfo.totalTime / 60);
            var second = examInfo.totalTime % 60;
            return {
                minute: minute,
                second: second,
                submitted: examInfo.submitCount,
                total: examInfo.totalCount
            };
        },
        enumerable: true,
        configurable: true
    });
    Header = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(48),
            mixins: [i18n_1.i18nMixin]
        })
    ], Header);
    return Header;
}(Vue));
exports.default = Header;


/***/ }),
/* 48 */
/***/ (function(module, exports) {

module.exports = "<div class=com_layout_header><div class=js_header><div class=com_time><div class=time_default><b class=time_text>{{ $i18n('header.text.time') }}</b> <span class=time_m><em>{{ examData.minute }}</em></span> <b class=time_text>{{ $i18n('header.minute', '') }}</b> <span class=time_s><em>{{ examData.second }}</em></span> <b class=time_text>{{ $i18n('header.second', '') }}</b></div></div><div class=upload><b class=upload_text>{{ $i18n('header.text.number', '') }}</b> <span class=\"num _num\">{{ examData.submitted }}</span>/ <span class=_count>{{ examData.total }}</span></div></div><div class=title_top_extend><slot name=panel></slot></div></div>"

/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! component/layer */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var vue_class_component_1 = __webpack_require__(1);
var getter_types_1 = __webpack_require__(2);
var mutation_types_1 = __webpack_require__(8);
var LayerDialog = (function (_super) {
    __extends(LayerDialog, _super);
    function LayerDialog() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    LayerDialog.prototype.dialogClick = function (type) {
        if (typeof this.dialog[type].handler === 'function') {
            this.dialog[type].handler();
        }
        else {
            this.$store.commit(mutation_types_1.default.HideLayer);
        }
    };
    LayerDialog = __decorate([
        vue_class_component_1.default({
            template: __webpack_require__(50),
            computed: vuex_1.mapGetters({
                toast: getter_types_1.default.ToastLayerOptions,
                dialog: getter_types_1.default.DialogLayerOptions
            })
        })
    ], LayerDialog);
    return LayerDialog;
}(Vue));
exports.default = LayerDialog;


/***/ }),
/* 50 */
/***/ (function(module, exports) {

module.exports = "<div><div class=\"com_pop_bgtips tips_stu_state notice-tip-box-auto\" v-if=toast.text v-show=toast.shown><div class=pop_text_main><span v-html=toast.text></span></div></div><div class=\"com_pop_set_leader com_pop_mask\" v-if=dialog.text v-show=dialog.shown><div class=pop_leader_content><div class=pop_bg_mid><div class=pop_leader_main><div class=pop_leader_tip><span class=pop_leader_icon></span><p class=\"pop_leader_txt js_layer_text\" v-html=dialog.text></p></div><ul class=pop_leader_select><li @click=\"dialogClick('confirm')\"><span>{{dialog.confirm.text}}</span></li><li @click=\"dialogClick('cancel')\"><span>{{dialog.cancel.text}}</span></li></ul></div></div></div></div></div>"

/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function setFontSize(element) {
    var _width = 1920, _height = 1080, _fontSize = 24;
    var winSize = (function () {
        var winWidth = 0, winHeight = 0;
        if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
            winWidth = document.documentElement.clientWidth;
            winHeight = document.documentElement.clientHeight;
        }
        return {
            width: winWidth,
            height: winHeight
        };
    })();
    var fontSize = 0;
    var width = winSize.width;
    var height = winSize.height;
    if (winSize.width / winSize.height <= _width / _height) {
        fontSize = winSize.width / _width * _fontSize;
        width = winSize.width < _width ? winSize.width : _width;
        height = _height * width / _width;
    }
    else {
        fontSize = winSize.height / _height * _fontSize;
        height = winSize.height < _height ? winSize.height : _height;
        width = _width * height / _height;
    }
    element.style.fontSize = fontSize + 'px';
}
exports.default = setFontSize;
;


/***/ }),
/* 52 */
/***/ (function(module, exports) {

module.exports = "<div class=\"stat_wood stat_subjective_root\"><div class=\"com_layout record_content\" :class=viewStyles><div class=com_wrapper><stats-header><div class=js_inject_header slot=panel></div></stats-header><div class=com_layout_container><stats-list :flower=flower :selector=selector :list=answerList :page=answerListPage :is-whole-list=isWholeAnswerList @click-item=clickListItem @flip=flipList></stats-list></div><stats-toolbar></stats-toolbar></div><stats-modal :flower=flower :selector=selector></stats-modal><stats-layer></stats-layer><div class=js_plugin_container></div></div></div>"

/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function($$AllocateKey) {
/*! view/backStats */
Object.defineProperty(exports, "__esModule", { value: true });
var Vue = __webpack_require__(0);
var vuex_1 = __webpack_require__(4);
var getter_types_1 = __webpack_require__(2);
var toolbar_1 = __webpack_require__(17);
var i18n_1 = __webpack_require__(7);
var BackStatsView = (function () {
    function BackStatsView(options) {
        if (!options.el)
            return;
        var el = (options.el.jquery ? options.el.get(0) : options.el);
        delete options.el;
        if (window.getComputedStyle(el).display === 'none') {
            el.style.display = 'block';
        }
        Array.prototype.forEach.call(el.children, function (item) { return item.style.display = 'none'; });
        var memberConfig = toolbar_1.ToolbarMembers.back;
        var member = {
            style: memberConfig.style,
            text: i18n_1.translate(memberConfig.i18n),
            handler: memberConfig.handler
        };
        options.template = '<stats-toolbar class="js_back_stats_panel" :members="members"></stats-toolbar>';
        options.computed = vuex_1.mapGetters({
            router: getter_types_1.default.ViewRouter
        });
        options.components = {
            'stats-toolbar': Midware.componentRequire('Common:Toolbar')
        };
        options.data = {
            members: [member]
        };
        options.created = function () {
            var _this = this;
            this.$watch('router', function (next, curr) {
                _this.$el.style.display = next === 'question' ? 'block' : 'none';
            });
        };
        options.mounted = function () {
            var _this = this;
            setTimeout(function () {
                var fakeDom = document.querySelector('.stat_subjective_root .ndui-tool-box li:last-child');
                if (fakeDom) {
                    var fakeStyle = fakeDom.getBoundingClientRect();
                    var style = {
                        position: 'fixed',
                        top: fakeStyle.top + "px",
                        left: fakeStyle.left + "px",
                        zIndex: 450
                    };
                    for (var key in style) {
                        _this.$el.style[key] = style[key];
                    }
                }
            }, 500);
        };
        var $vue = new Vue(options);
        $vue.$mount(el);
        return $vue;
    }
    return BackStatsView;
}());
exports.default = BackStatsView;
Midware.componentDefine($$AllocateKey('BackStats'), function () { return BackStatsView; });

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11)["default"]))

/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function($$AllocateKey) {
/*! parser */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var QuestionParsers = {
    composition: __webpack_require__(55).default,
    englishcard: __webpack_require__(56).default,
    graphicgapmatch: __webpack_require__(57).default,
    makeword: __webpack_require__(58).default,
    mindjet: __webpack_require__(20).default,
    wordcard: __webpack_require__(59).default,
    subjectivity: __webpack_require__(60).default,
    compositionoutline: __webpack_require__(62).default,
    fillcolor: __webpack_require__(63).default
};
var DataParser = (function () {
    function DataParser() {
    }
    DataParser.prototype.destroy = function () {
        delete this.__instance;
        delete this.__questionModel;
        delete this.__questionType;
    };
    DataParser.prototype.setQuestionType = function (questionType) {
        this.__questionType = questionType.toLowerCase();
        this.__instance = this.__questionType in QuestionParsers ? new QuestionParsers[this.__questionType]() : new base_1.default();
    };
    DataParser.prototype.getQuestionType = function () {
        return this.__questionType;
    };
    DataParser.prototype.loadQuestionModel = function (questionUrl, refPath) {
        var _this = this;
        return this.__instance.loadQuestionModel(questionUrl, refPath).then(function (res) { return _this.__questionModel = res; });
    };
    DataParser.prototype.getQuestionModel = function () {
        return this.__questionModel;
    };
    DataParser.prototype.getDetail = function (data) {
        return this.__instance.getDetail(data);
    };
    DataParser.prototype.getList = function (data) {
        return this.__instance.getList(data);
    };
    DataParser.prototype.getPreviews = function (data, current) {
        return this.__instance.getPreviews(data, current);
    };
    DataParser.prototype.getStatsData = function (data) {
        return this.__instance.getStatsData(data);
    };
    DataParser.prototype.getParsingData = function () {
        return this.__instance.getParsingData(this.__questionModel);
    };
    DataParser.prototype.getReferenceData = function () {
        return this.__instance.getReferenceData(this.__questionModel);
    };
    return DataParser;
}());
exports.default = DataParser;
Midware.componentDefine($$AllocateKey('DataParser'), function () { return DataParser; });

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11)["default"]))

/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/composition */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var CompositionParser = (function (_super) {
    __extends(CompositionParser, _super);
    function CompositionParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    CompositionParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            var data = (detail.data.data && detail.data.data[detail.dataIndex >= 0 ? detail.dataIndex : 0]) || { value: '' };
            var title = (data.extra && data.extra.title) || (detail.data.data && detail.data.data[0] && detail.data.data[0].extra && detail.data.data[0].extra.title) || '';
            detail.data[constants_1.PrivateKey.RenderData] = {
                type: 'composition',
                value: {
                    title: title,
                    content: data.originValue || data.value
                }
            };
        }
        return detail;
    };
    CompositionParser.prototype.getPreviews = function (list, current) {
        var result = {
            isStudentList: false,
            data: []
        };
        if (current.data && Array.isArray(current.data.data)) {
            result.data = current.data.data.map(function (item) { return ({
                type: 'image',
                data_type: 'write',
                value: item.value || ''
            }); });
        }
        return result;
    };
    return CompositionParser;
}(base_1.default));
exports.default = CompositionParser;


/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/englishcard */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var EnglishCardParser = (function (_super) {
    __extends(EnglishCardParser, _super);
    function EnglishCardParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    EnglishCardParser.prototype.getDetail = function (detail) {
        var result = {};
        if (detail.data && Array.isArray(detail.data.data)) {
            var answer = detail.data.data[0] || { value: '' };
            for (var _i = 0, _a = detail.data.data; _i < _a.length; _i++) {
                var item = _a[_i];
                if (item.type === 'image') {
                    var extra = item.extra;
                    if (extra && typeof extra === 'string') {
                        extra = JSON.parse(extra);
                    }
                    result.type = 'englishcard';
                    result.value = {
                        title: (extra && extra.title) || '',
                        trace: answer.originValue || answer.value || ''
                    };
                    break;
                }
            }
            detail.data[constants_1.PrivateKey.RenderData] = result;
        }
        return detail;
    };
    return EnglishCardParser;
}(base_1.default));
exports.default = EnglishCardParser;


/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/puzzle */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var get_qtiplayer_1 = __webpack_require__(13);
var object_1 = __webpack_require__(12);
var ListOption = {
    showTitleArea: false,
    showLock: true,
    showHint: false,
    showAnswer: true,
    platForm: 'statis',
    expectWidth: 320,
    expectHeight: 150,
    theme: 'wood',
    graphicGapMatchImageLoaderEnable: false,
    randomSeed: [19, 14, 17, 2, 24, 16, 4, 21, 20, 5, 22, 11, 18, 13, 15, 7, 8, 28, 1, 0, 29, 10, 23, 12, 26, 25, 27, 3, 6, 9]
};
var PreviewsOption = {
    showTitleArea: false,
    showLock: true,
    showHint: false,
    showAnswer: true,
    platForm: 'statis',
    theme: 'wood',
    expectWidth: 141,
    expectHeight: 77,
    graphicGapMatchImageLoaderEnable: false,
    randomSeed: [19, 14, 17, 2, 24, 16, 4, 21, 20, 5, 22, 11, 18, 13, 15, 7, 8, 28, 1, 0, 29, 10, 23, 12, 26, 25, 27, 3, 6, 9]
};
var DetailOption = {
    showTitleArea: false,
    showLock: true,
    showHint: false,
    showAnswer: true,
    platForm: 'statis',
    theme: 'wood',
    expectWidth: 907,
    expectHeight: 415,
    graphicGapMatchImageLoaderEnable: false,
    randomSeed: [19, 14, 17, 2, 24, 16, 4, 21, 20, 5, 22, 11, 18, 13, 15, 7, 8, 28, 1, 0, 29, 10, 23, 12, 26, 25, 27, 3, 6, 9]
};
var getParsedValue = function (data) {
    var value = JSON.parse((data && data.value) || '{}');
    return value.user_response && value.user_response.length ? value.user_response[0] : value;
};
var PuzzleParser = (function (_super) {
    __extends(PuzzleParser, _super);
    function PuzzleParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    PuzzleParser.prototype.loadQuestionModel = function (questionUrl, refPath) {
        if (!questionUrl && window['player']) {
            questionUrl = player.getController().getModule('BasicQuestionViewer').__model.url;
        }
        return _super.prototype.loadQuestionModel.call(this, questionUrl, refPath);
    };
    PuzzleParser.prototype.getList = function (list) {
        if (Array.isArray(list) && list.length) {
            list.forEach(function (item) {
                item[constants_1.PrivateKey.DetailedList] = true;
                item[constants_1.PrivateKey.RenderData] = object_1.innumerable({
                    type: 'puzzle',
                    value: getParsedValue((item.data && item.data[0]) || null),
                    option: ListOption
                }, ['option']);
            });
        }
        return list;
    };
    PuzzleParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            detail.data[constants_1.PrivateKey.RenderData] = object_1.innumerable({
                type: 'puzzle',
                value: getParsedValue((detail.data.data && detail.data.data[0]) || null),
                option: DetailOption
            }, ['option']);
        }
        return detail;
    };
    PuzzleParser.prototype.getPreviews = function (list, current) {
        if (Array.isArray(list) && list.length) {
            list.forEach(function (item) { return item[constants_1.PrivateKey.RenderData] = object_1.innumerable({
                type: 'puzzle',
                value: getParsedValue((item.data && item.data[0]) || null),
                option: PreviewsOption
            }, ['option']); });
        }
        return {
            isStudentList: true,
            data: list
        };
    };
    PuzzleParser.prototype.getReferenceData = function (questionModel) {
        var result = {
            type: 'image',
            value: ''
        };
        if (!questionModel)
            return result;
        var model = null;
        for (var key in questionModel) {
            model = questionModel[key];
        }
        for (var _i = 0, _a = ((model.object && model.object.param) || []); _i < _a.length; _i++) {
            var item = _a[_i];
            if (item.name === 'originalImage') {
                result.value = item.value;
            }
        }
        return result;
    };
    PuzzleParser.prototype.getParsingData = function (questionModel) {
        var result = {
            type: 'text',
            value: ''
        };
        var qtiplayer = get_qtiplayer_1.default();
        var answerFeedback = qtiplayer.getAssessmentModel().answerFeedback, model;
        for (var i in answerFeedback) {
            model = answerFeedback[i];
        }
        if (model && model.content) {
            result.value = model.content;
        }
        return result;
    };
    PuzzleParser.prototype.getStatsData = function (data) {
        var result = {
            type: 'chart',
            value: object_1.innumerable({
                undo: 0,
                right: 0,
                error: 0,
                total: 0,
                rightStudents: []
            })
        };
        if (data && data.resultStatistics) {
            result.value.right = data.resultStatistics.correct || 0;
            result.value.error = data.resultStatistics.unCorrect || 0;
            result.value.undo = data.resultStatistics.unSubmit || 0;
            result.value.total = data.totalCount || data.submitCount || 0;
        }
        else if (Array.isArray(data)) {
            result.value.total = data.length;
            for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
                var item = data_1[_i];
                var answer = (item.data && item.data[0] && item.data[0].value) || '';
                if (!answer) {
                    result.value.undo++;
                }
                else if (!!~answer.toUpperCase().indexOf('PASSED')) {
                    result.value.right++;
                    result.value.rightStudents.push(item.studentId);
                }
            }
            result.value.error = result.value.total - result.value.right - result.value.undo;
        }
        return result;
    };
    return PuzzleParser;
}(base_1.default));
exports.default = PuzzleParser;


/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/makeword */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var MakeWordParser = (function (_super) {
    __extends(MakeWordParser, _super);
    function MakeWordParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    MakeWordParser.prototype.loadQuestionModel = function (questionUrl, refPath) {
        return new Promise(function (resolve, reject) {
            if (window['player']) {
                var found = false;
                var module_1 = player.getController().getModule('MakeWord');
                if (module_1 && module_1.__model && module_1.__model.question_url) {
                    found = true;
                    resolve(module_1.__model.question_url);
                }
                else {
                    var modules = player.getPlayerServices().getPresentation().getPage().getModules();
                    for (var _i = 0, modules_1 = modules; _i < modules_1.length; _i++) {
                        var module_2 = modules_1[_i];
                        var service = player.getPlayerServices().getModule(module_2);
                        if (typeof service.getMakeWordModel === 'function') {
                            found = true;
                            resolve(service.getMakeWordModel().question_url);
                        }
                    }
                }
                if (!found)
                    resolve();
            }
            else if (typeof questionUrl === 'string' && typeof fetch === 'function') {
                fetch(questionUrl).then(function (res) { return res.json(); }).then(resolve).catch(function (e) { return resolve(); });
            }
            else {
                resolve();
            }
        });
    };
    MakeWordParser.prototype.getDetail = function (detail) {
        if (detail.data && detail.data.data) {
            var result_1 = {
                type: 'makeword',
                value: []
            };
            detail.data.data.forEach(function (item) { return result_1.value.push(item.value || ''); });
            detail.data[constants_1.PrivateKey.RenderData] = result_1;
        }
        return detail;
    };
    return MakeWordParser;
}(base_1.default));
exports.default = MakeWordParser;


/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/wordcard */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var WordCardParser = (function (_super) {
    __extends(WordCardParser, _super);
    function WordCardParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    WordCardParser.prototype.getDetail = function (detail) {
        if (detail.data && Array.isArray(detail.data.data)) {
            var result_1 = {
                type: 'wordcard',
                value: {
                    pinyin: '',
                    trace: '',
                    writes: []
                }
            };
            var regexp_1 = /(\d+)$/;
            var word_1 = null;
            detail.data.data.filter(function (item) {
                if (item.extra) {
                    if (typeof item.extra === 'string') {
                        item.extra = JSON.parse(item.extra);
                    }
                    if (item.extra.fileKey) {
                        if (/writeData/.test(item.extra.fileKey)) {
                            return true;
                        }
                        else if (/traceData/.test(item.extra.fileKey)) {
                            word_1 = item;
                        }
                    }
                    return false;
                }
                return false;
            }).sort(function (a, b) {
                var m1 = a.extra.fileKey.match(regexp_1);
                var m2 = b.extra.fileKey.match(regexp_1);
                var r1 = m1 ? +m1[1] : -1;
                var r2 = m2 ? +m2[1] : -1;
                return r1 - r2;
            }).forEach(function (item) {
                result_1.value.writes.push(item.originValue || item.value || '');
            });
            if (word_1) {
                result_1.value.pinyin = word_1.extra.pinyin || '';
                result_1.value.trace = word_1.originValue || word_1.value || '';
            }
            detail.data[constants_1.PrivateKey.RenderData] = result_1;
        }
        return detail;
    };
    return WordCardParser;
}(base_1.default));
exports.default = WordCardParser;


/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/subjectivity */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var constants_1 = __webpack_require__(3);
var get_qtiplayer_1 = __webpack_require__(13);
var html_convert_1 = __webpack_require__(61);
var MediaOption = {
    autoAdaptSize: true,
    mutuallyExclusive: true,
    containerId: '',
    returnInstances: true,
    mediaPreload: true,
    style: '',
    img: {
        render: false
    },
    video: {
        render: true,
        width: 1000,
        height: 490,
        supportFullscreen: false,
        showPlayBtnInVideo: true,
        showFullscreenBtn: false
    },
    audio: {
        render: true,
        width: 400,
        height: 300
    }
};
var getParsedData = function (data) {
    var result = {
        type: data.type,
        data_type: data.type,
        value: ''
    };
    switch (data.type) {
        case 'string':
            result.type = 'text';
            result.value = !!~data.value.indexOf('<p>') ? html_convert_1.convertLineToTag(data.value) : data.value;
            break;
        case 'file':
        case 'write':
        case 'image':
            result.type = 'image';
            result.value = data.value || data.src || '';
            if (data.type !== 'write') {
                result.data_type = 'picture';
            }
            break;
        case 'audio':
        case 'video':
            result.value = data.value || data.src || '';
            result.option = MediaOption;
            break;
        default: break;
    }
    return result;
};
var SubjectiveParser = (function (_super) {
    __extends(SubjectiveParser, _super);
    function SubjectiveParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    SubjectiveParser.prototype.getList = function (list) {
        if (list instanceof Array && list.length) {
            list.forEach(function (item) {
                var data = Array.isArray(item.data) && item.data.length ? Array.prototype.concat.call([], item.data).sort(function (a, b) {
                    if (a.type === 'write') {
                        return -1;
                    }
                    if (b.type === 'write') {
                        return 1;
                    }
                }) : [];
                var previewData = data.map(function (a) { return getParsedData(a); });
                item[constants_1.PrivateKey.RenderData] = previewData[0] || { type: '', vlaue: '' };
                item[constants_1.PrivateKey.RenderData].previews = previewData;
            });
        }
        return list;
    };
    SubjectiveParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            var data = (detail.data.data && Array.prototype.concat.call([], detail.data.data).sort(function (a, b) {
                if (a.type === 'write') {
                    return -1;
                }
                if (b.type === 'write') {
                    return 1;
                }
            })[detail.dataIndex >= 0 ? detail.dataIndex : 0]) || { type: '' };
            var parsedData = getParsedData(data);
            if (parsedData.type === 'image' && data.originValue) {
                parsedData.value = data.originValue;
            }
            detail.data[constants_1.PrivateKey.RenderData] = parsedData;
        }
        return detail;
    };
    SubjectiveParser.prototype.getPreviews = function (list, current) {
        var previews = [];
        if (current.data && Array.isArray(current.data.data)) {
            previews = Array.prototype.concat.call([], current.data.data).sort(function (a, b) {
                if (a.type === 'write') {
                    return -1;
                }
                if (b.type === 'write') {
                    return 1;
                }
            }).map(function (a) { return getParsedData(a); });
        }
        return {
            isStudentList: false,
            data: previews
        };
    };
    SubjectiveParser.prototype.getReferenceData = function (questionModel) {
        var result = {
            type: 'list',
            value: []
        };
        if (!questionModel)
            return result;
        var model = null;
        for (var key in questionModel) {
            model = questionModel[key];
        }
        if (model && model.rubricBlock && (model.rubricBlock.text || (model.rubricBlock.asset && model.rubricBlock.asset.length))) {
            result.value.push({
                type: 'text',
                value: html_convert_1.convertLineToSpace(model.rubricBlock.text || '')
            });
            for (var _i = 0, _a = ((model.rubricBlock && model.rubricBlock.asset) || []); _i < _a.length; _i++) {
                var item = _a[_i];
                var val = getParsedData(item);
                (val.option || (val.option = {})).poster = item.poster;
                result.value.push(val);
            }
        }
        return result;
    };
    SubjectiveParser.prototype.getParsingData = function (questionModel) {
        var result = {
            type: 'list',
            value: []
        };
        var qtiplayer = get_qtiplayer_1.default();
        var answerFeedback = qtiplayer.getAssessmentModel().answerFeedback, model;
        for (var i in answerFeedback) {
            model = answerFeedback[i];
        }
        if (model && model.contentData && (model.contentData.text || (model.contentData.asset && model.contentData.asset.length))) {
            result.value.push({
                type: 'text',
                value: html_convert_1.convertLineToSpace(model.contentData.text || '')
            });
            for (var _i = 0, _a = (model.contentData.asset || []); _i < _a.length; _i++) {
                var item = _a[_i];
                var val = getParsedData(item);
                (val.option || (val.option = {})).poster = item.poster;
                result.value.push(val);
            }
        }
        return result;
    };
    return SubjectiveParser;
}(base_1.default));
exports.default = SubjectiveParser;


/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
function convertLineToSpace(text) {
    return text.replace(/\r\n|\n|\r/g, '');
}
exports.convertLineToSpace = convertLineToSpace;
;
function convertLineToTag(text) {
    return text.replace(/\r\n|\n|\r/g, '<br>');
}
exports.convertLineToTag = convertLineToTag;
;


/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/compositionOutlineParser */
Object.defineProperty(exports, "__esModule", { value: true });
var vue_1 = __webpack_require__(0);
var base_1 = __webpack_require__(5);
var mindjet_1 = __webpack_require__(20);
var constants_1 = __webpack_require__(3);
var object_1 = __webpack_require__(12);
exports.ListOption = Object.assign({}, mindjet_1.ListOption, {
    type: 'right',
    rootVertical: true,
    showRequireStar: true,
    remarkVisible: true,
    privateRenderPosition: ['left', 'top']
});
var CompositionOutlineParser = (function (_super) {
    __extends(CompositionOutlineParser, _super);
    function CompositionOutlineParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    CompositionOutlineParser.prototype.getList = function (list) {
        if (Array.isArray(list) && list.length) {
            list.forEach(function (item) {
                var result = {};
                var data = item[constants_1.PrivateKey.ModifiedData] || item.data;
                if (Array.isArray(data)) {
                    var hasThumbData = false;
                    for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
                        var x = data_1[_i];
                        if (x.type === 'thumb') {
                            hasThumbData = true;
                            if (x.data_type === 'raw') {
                                result.type = 'mindjet';
                                result.value = JSON.parse(x.value || '{}');
                                result.option = exports.ListOption;
                                object_1.innumerable(result, ['option']);
                            }
                            else {
                                result.type = 'image';
                                result.value = x.value || '';
                            }
                            break;
                        }
                    }
                    if (!hasThumbData && data.length) {
                        result.type = 'image';
                        result.value = data[0].value || '';
                    }
                }
                vue_1.set(item, constants_1.PrivateKey.RenderData, result);
            });
        }
        return list;
    };
    CompositionOutlineParser.prototype.getDetail = function (detail) {
        if (detail.data) {
            if (detail.data[constants_1.PrivateKey.RenderType] === 'mindjet') {
                var result = {};
                if (Array.isArray(detail.data.data)) {
                    for (var _i = 0, _a = detail.data.data; _i < _a.length; _i++) {
                        var x = _a[_i];
                        if (x.type === 'detail') {
                            result.type = 'mindjet';
                            result.value = JSON.parse(x.value || '{}');
                            result.option = mindjet_1.DetailOption;
                            object_1.innumerable(result, ['option']);
                            break;
                        }
                    }
                }
                vue_1.set(detail.data, constants_1.PrivateKey.RenderData, result);
            }
            else {
                detail.data[constants_1.PrivateKey.RenderData] = {};
            }
        }
        return detail;
    };
    return CompositionOutlineParser;
}(base_1.default));
exports.default = CompositionOutlineParser;


/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*! parser/fillcolor */
Object.defineProperty(exports, "__esModule", { value: true });
var base_1 = __webpack_require__(5);
var FillColorParser = (function (_super) {
    __extends(FillColorParser, _super);
    function FillColorParser() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    FillColorParser.prototype.loadQuestionModel = function (questionUrl, refPath) {
        return new Promise(function (resolve, reject) {
            if (window['player']) {
                var fillColorModule = player.getController().getModule('FillColor');
                if (fillColorModule && fillColorModule.__model) {
                    resolve(fillColorModule.__model.QuestionContent);
                    return;
                }
            }
            resolve();
        });
    };
    FillColorParser.prototype.getReferenceData = function (questionModel) {
        var result = {
            type: 'image',
            value: ''
        };
        if (questionModel && questionModel.expectedImage) {
            result.value = questionModel.expectedImage;
        }
        return result;
    };
    return FillColorParser;
}(base_1.default));
exports.default = FillColorParser;


/***/ })
/******/ ]);